Reintroducing Lost Routes Overriding (#2848)

In Laravel 4.0, the Symfony routing layer allowed you to redeclare a given route and it would become the responder for a request, not the original.

There's two solid examples (both of which I'm hitting) where this is useful:

1. Say you would like to use a 3rd party Laravel package who specifies routes, but would like to customise the functionality of that. This was possible in 4.0 and is not in 4.1.
2. (Based on the previous example), say you were building an extendible system, such as a CMS, you would like drop-in code (let's call theme "extensions") to be able to override other extensions. This was possible, now it is not.

This PR breaks no backwards compatibility, but rather reinstates it. I have also included tests as proof of concept that this behaviour is working as expected again.

This PR fixes #2848.