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.
In case anyone wonders about this: the function being named `to_string` caused breakage in derived classes, when calling `to_string (url)` failed to discover the correct version using ADL, since this function was "getting in the way".