Update perf graph query string


The short summary of this patch is that the query string in our graphs now
includes suite, date range, configuration, and the selected graphs.

The selected graphs now use the graph title instead of checkbox id to make the
URL valid for longer. Previously changing the order of graphs would invalidate
check boxes. This effort is just to make it easier to share graphs and specific
dates and configurations with others and have the URLs valid longer. It also
makes it easy to add other options to the query string in the future.

The query string of our graphs used to be used only for keeping track of which
graphs were currently displayed. We have wanted to update it to include things
like which configuration(s) are selected, which suite is selected, and the date
range.

This patch includes updates to allow setting arbitrary options and storing them
in the URL easy. It provides getter and setter options which get and set
options from the query string. These functions are then used to for getting and
setting the date range, selected graphs or suite, and configuration.

A bunch of helper functions were added to parse dates, and normalize strings to
be stored in a url and to be able to figure out what suite is currently
displayed.