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.
Looking at this case, I think we could get away with either. It's not worth worrying about tbh.