Custom UrlGenerator so that API Routes can be used with URL::action()

A custom UrlGenerator designed to solve issue #129. 


Btw @jasonlewis, I had to stash these changes for realizing I needed to pull from Upstream, so it's considering some of the PSR-2 style changes as my commit after re-applying the stash. Still learning some things about Git, so apologies.

@lucasmichot This if...else is brought over from Laravel's UrlGenerator. The main difference is, Laravel's throws an InvalidArgumentException if the route is not defined. In this case, we first check if the route in question is part of the ApiRoutes collection and passes it to the toRoute() function. Then if it still fails, we throw that Exception anyway.

If there is a better way, I'm open to suggestions though