[4.1] URL detection interface

- Adds ability to overwrite default URL detection logic.
- Improves on the default URL detection and should fix #158
- Extracted some URL manipulation logic into `Facebook\Url\FacebookUrlManipulator` with plans to extract the URL manipulation stuff from `Facebook\Entities\FacebookRequest` so that it can be shared with the new pagination stuff (to come after this merge).
- Complete with documentation. :)
Again static lol.
I don't think providing this as a service-like method is usefull. I think it's better to add this method to the URL detection handler interface, and this implementation in the default one.
Any external URL provider like Symfony HttpFoundation Request class has its own way to filter params (e.g. $request->query->remove('error'))