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.
Are there other projects which use Beast? Since this is a breaking change, and beast::String still exists, is it worth keeping a constructor that is capable of a conversion, or is this a "rip off the band-aid" situation?