Special highlights:
- Fixed some license headers.
- Adhered to normal addon structure.
- Removed `exceptions.py` and use `UserError` instead.
- Allow submodules to import some constants from main namespace.
The rest is basically a standard migration.