4.0.0

Major rewrite of core architecture so that multiple apps and multiple sites can be managed from one installation

- [x] Make distributable via Python setuptools
- [x] Event based system to manage apps
  - Register Module
  - Register DocType Event
  - Register Template
- [x] New directory structure for sites
- [x] Install
- [x] Build
- [x] Session Boot
- [x] Web page serving
  - Template loader (ability to import / serve registered templates)
  - Build sitemap
  - Render pagee
- [x] Update syncing
- [x] Rewrite notification hooks
- [x] Rewrite bean hooks
- [x] Rewrite scheduler hooks
- [x] Rewrite session hooks
- [x] Patch
- [x] Scheduler
- [x] Languages (concat translations from all apps)
  - Extract translatable strings from DocType, Page, Report, Python Module, JS Files (`get_translatable_strings`)
  - Compile all strings in one file (per app)
  - `get_language_dictionary` - load concatenated csv files from all apps in one dict
  - Append translation strings in DocType (controller) load, Page load, report load, session boot (for application js files)
- [x] Test cases
- [x] Make all imports / client calls explicit - e.g. `webnotes.core.doctype.profile` and `erpnext.selling.doctype.sales_order` etc.
- [x] Applications page (available, installed) - actions instal / un-install
- [ ] Hooks for custom client script
- [ ] Demo (via app)
- [ ] Base Template
- [x] New doctype creation
- [ ] Rename `wnframework` to `webnotes`
- [ ] Final patch in v3.x and verification that the final 3.x patch has been completed in the db before switching to 4.x