Add RouteFormatters

Hi!

I know the changes in this pull request might be pushing this repository into an unforeseen direction, and if you don't want to merge them then I totally understand, but I thought I'd open it up anyway incase you find it useful.

I've introduce the ability to dump out the RAML as an single array which has the full resource uri's. It deals with recursing through all the sub resources to build out the full endpoints and it's hugely useful for a project I'm working on at the moment. I've allowed that to be extended, so instead of just getting an array of routes back, you can pass it off to a 'formatter' to do other things, such as turn the routes into a Symfony2 `RouteCollection`.

In addition, there's a few minor changes to the PHPDoc, bumping up the PHPUnit requirement and adding a couple of new functions to various classes.

Let me know what you think :)
Does this need `isset($this->body[$type] && $this->body[$type]['schema'])` to be safe