Fully templetize beast::lexicalCast

From my (apparently bottomless) reservoir of stale local branches: remove the need for manually overloading `operator()` for various arithmetic types in `beast::LexicalCast` by using templates and add support for printing enumeration types as well.

Reviews: @vinniefalco and @HowardHinnant