added gunicorn config
restructured project layout
added functional tests
added json schema validation
refactored backends to use _make_request method
added handling for validation errors
fixed linting errors, mostly added docstrings