Custom url encoding

I'm working on a project that has complex URL encoding requirements.

Instead of over-riding the existing patches to String, I've modified the code to use an URLEncoder class that can be swapped out for a differing implementation.

I'd be glad to re-work if you'd like a differing implementation.
Thanks!