Fix issue with route action not being parsed when set directly.

Instead of parsing the filters when returning them with the `beforeFilters` and `afterFilters` methods, they are parsed and stored as full arrays when either set using the `before` or `after` methods.

The `parseAction` method is now called from the `setAction` method so that the same processing is applied as in the constructor. This allows for the route to be attached to a different closure and also set the before and after filters whether they are full or partial strings or arrays. Specifically this allows for the action to be fetched using the `getAction` method, altered, then passed back in using the `setAction` method.

**NOTE:**
While this allows for the action to be redefined with a closure, it does not allow for a controller to be set since that requires the original groupstack that was available when it was first parsed. The code would need to be restructured with the groupstack context being stored with the route.
They should only be aligned if the indentation doesn't look silly. I've you've got more than 5 spaces, it's probably be better to just stick with 2 spaces.