Use the 'q' query parameter on the search page to trigger searches.

Partially Fixes #159
When performing a search put param in query string

Fixes #159
Move these guys out to utility namespace
Set search values from query string

Update 'species' and 'location' text box/autocompletes with the data
specified in the query string.

In particular, a mechanism using a custom events is being added. Any
search widget should implement a custom event called `restore` that
accepts as extra data param the value to update to.

Updates when using `restore` should *not* trigger a new search
Use npm packages for better query string manipulation
Merge pull request #174 from ahinz/fix/159/use-q-param-for-search

Fix/159/use q param for search