Add query string support to m.route

m.route now parses query string in given path into m.route.param

	* Params gathered the old way (e.g. /test/:id) overwrite params from the query string
	* /?valid => m.route.param('valid') === true
	* /?blank= => in m.route.param('blank') === ''
	* Supports nested values: ?test[a][b]=1&test[a][b]=2 => m.route.param('a') == {b: "1", c: "2"}

The nested values where only added to behave similar to the encoding function querystring in mithril. Maybe this is not necessary? Code could be shorter.
m.route supports params as an object, and builds querystring from it

m.route('/path', {param: 1}) => navigates to '/path?param=1'

The API is a little bit problematic, as it is not possible to combine it with `shouldReplaceHistoryEntry`.
Merge branch 'route-query-string' of github.com:yolk/mithril.js into yolk-route-query-string

Conflicts:
	tests/mithril-tests.js
add support for route query string
fix querystring parsing of array syntax