[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. :)
For now I'm going to keep it as-is but it won't be used in this PR (since we're not filtering any params anymore). I don't want to add it to the Url Detection Handler since we won't need it anymore but we'll need it in the next PR that supports pagination. So we can refactor it in the next PR to remove the statics if we need to. :)