Enables JSON encoder to parse decimal objects
Cumulative sorting fix
Fixed aggregate datatables default sorting
Add hostname to metadata on client side

Getting hostname from cherrypy on server side is unreliable.
Fixing SQL arguments

SQL arguments were broken for systems using postgres databases. This
should now work for both postgres and sqlite arguments.

Also made some of the database constructors a bit simpler.
Removing prints in client side cherry pyformance

Clutters client side software (e.g. Booker4)
Stop filtering from selecting default value as filter
Making filtering a bit easier to use

Can now click to remove individual filters.
Also resets value combo box when removing all filters.
Removing print
Removing passing kwargs in URL
Updating kwargs when removing filter
Fixing kwargs passing to aggregate item page

kwargs were becoming unordered because they were being shoved into a
list.
Added filter kwargs to header links and breadcrumbs

Filters should now persist when navigating between most pages.

They are still lost when navigating to individual item page however.
Fixing date filtering on line graph
Fixed breadcrumb bug

Whoops
Removing repeated code
Adding filter kwargs to individual items page

Filters should persist everywhere now.
Merging Max's changes
Added further empty sql arg checks.
Using postgres default constraint names

Need to use postgres default constraint names to drop unique constraints
that weren't created using alembic.