Fix beast::URL (RIPD-636)

When attempting to reconstitute a `beast::URL` into a string, the resulting URL will be wrong when the url contains a username, a query string or a fragment. The first commit does the minimal fixing necessary to get this working. 

The other two commits are *optional* refactoring work and not related to RIPD-636:

* Rebase `beast::URL` and `beast::ParsedURL` on top of `std::string` -- no more `beast::String`!
* Make `beast::URL::to_string` a free function and use ` = default` constructors and C++11 goodness.
* Fixes all the **Beast** call sites accordingly.
* Fixes all the **RippleD** call sites accordingly.

Reviews from @HowardHinnant, @vinniefalco and @ximinez.
Here is a demo of how to do it: https://ideone.com/yfphf8
Calls to `to_string` do not need to be made from a namespace that does not contain overloads of this function.  Just add the `using std::to_string;` to the virtual functions to enable the ADL.  This idiom is standard fare (it is how swap works too).