This will remove the dependency on the Elasticsearch database.
The search query is passed currently as raw SQL. Proper implementation
using SQLAlchemy will need custom ORM classed to be made.
Additional config parameter "allow_broken_uploads" has been added.
- Added type hinting (for now, 3.5-compatible)
- Split `db` namespace into `db` module and `model` namespace
- Changed elastic search to be created lazily for each operation
- Changed to class based approach in entity serialization to allow
stronger typing
- Removed `required` argument from `context.get_*` family of functions;
now it's implied if `default` argument is omitted
- Changed `unalias_dict` implementation to use less magic inputs