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
- [x] Demo (via app)
- [x] Base Template
- [x] New doctype creation
- [x] Add column break in all tables
- [x] New API
- [ ] Documentation for new permissions
- [ ] New Install documentation
- [ ] Final patch in v3.x and verification that the final 3.x patch has been completed in the db before switching to 4.x
- [ ] Remove all 3.x patches (they won't run!)
- [ ] Rename `wnframework` to `frappe`