Handle user interaction with the Control panel. The handler extracts the user input from the Control panel, adds it to a object and sends it to the server(the actual request is delegated). The handler awaits response from the server and then the response from the server is visualised on the map.
Automated some of the tasks executed by controls.js - adding the listeners is not hardcoded - it relies on the html to be written with proper attributes. Added Checkboxes for the Heatmap/Markers(/Both) data visualization.
Major change in how the Leaflet(MapBox) Map Control works. Before, there was a static html file in /static... which was retrieved with an ajax call(in controls.js) and added as a content of the Map Control div. The problem with that was that every time we want to add a new API, we need to add code to the html, change, the javascript to handle it, etc.
The introduced solution - use the jinja templates to dynamically build the content of the Map Control. The ajax request in controls.js is still present, but the url is /app/control_panel. This route is currently handled by the home view.
There we add to a dict all of the API we have and some data we want to show on the Map Control(the police crime categories, for example) and then render the "main.html" template from templates/map_control.
The template relies on that we add to the "api" folder some specific for a given API functions. In the case of the Police API, where we need to select a Crime category, in the api/police.html template there is a single function calling a macro which generates a Collapsable div containing all police crime categories(the categories data is passed from the home view route handler, as already mentioned above). In the templates/map_control/misc  there are macros which make the adding of API templates quite easy.

So if one has added a new API on the server side, and wants to put some specific for the API options on the Map Control at the Client side, he needs to add the name of the api to controller->featureOptions, create a new template in /templates/map_control/api with the same name as the one added to featureOptions and use the macros to add what it is needed. Currently it is needed to add handler module in the data_handler.js at the front end. This will probably change(see later commits)

Sorry for the long commit message :)
tl;dr - Map Control on the right of the map is no longer static html.
clean up code; attach the listeners to the API checkboxes and Update buttons smarter.
app on the whole screen. added a navigation toggle(show hide the navigation)
Updated the Macbook photo on the landing page.
Reorganized the Control on the map.
Added a listener to the tabs(Search by city and Draw area) - so when we switch on the Draw area - the Draw Control is enabled(the draw control was added in draw_on_map.js). The data_handler.js when constructing the request uses either the content from Search by city or gets array of polygon coordinates(as specified by the polygon which the user is supposed to draw).

Added custom error message when the user has opened the Draw area, hasnt drawn anything, and presses update map.
Added arrows to the main api categories so better UI when collapsing/decollapsing them.