Regression in route URL generation

In 4.0, `URL::route` and `URL::action` generates query strings out of extra parameters. This is missing in 4.1, so I took a stab at implementing it.

```php
Route::get('foo/{param}/{opt?}', array('as' => 'foo', function($p, $o) { ... });

// http://mysite.com/foo/param/opt?foo=bar&baz
URL::route('foo', array('param', 'opt', 'foo' => 'bar', 'baz'));
```

In 4.0 'baz' would be appended as '&0=baz' because symfony's url generator simply calls http_build_query - I improved a little on it (in my opinion) by differentiating between array members with a numeric and non-numeric key, though at the cost of performance.