Implementing __set_state for CakeRoute

It helps the applications to cache the routes using var_export when possible.
Are you caffeinated now? :)

The test uses `var_export()` which will dump the result like `CakeRoute::__set_state(['key' => 'value'])`. So doing an `eval()` of it will trigger the code I implemented and generate a new object. PHPUnit `assertEquals` compare the object generate manually with the object generated from the `CakeRoute::__set_state()`, attribute by attribute.

That makes sense? I can make a simpler test just generating an object from calling the `__set_state` directly, but I thought this way would cover more the real usage of `__set_state`.