Remove random.hpp

The old pseudo-random number generation utilities provided by random.hpp are unacceptable and have been removed to be replaced.

The issues with this header and the utilities provided therein include:

- The use of the OpenSSL PRNG, which isn't thread safe
- The implicit use of std::uniform_int_distribution by the Random template (which provided a thread safe wrapper for a PRNG), which (possibly) doesn't function in the same way across platforms/versions of a standard library, and which doesn't -- if the standard library enforces strict compliance -- allow for the generation of char, unsigned char, or signed char
Random Device

Implented the RandomDevice<T> template, which generates random numbers suitable for use in cryptography of type T.

Pulls random bytes from /dev/urandom on Unix-like systems, CryptGetRandom on Windows.

This is intended as a drop-in replacement for/improvement of std::random_device:

- std::random_device generates random numbers only of type unsigned int, this generator can seamlessly generate random numbers of any type
- std::random_device is permitted by the standard to generate random numbers unsuitable for use in cryptography, this generator is guaranteed to generate random numbers suitable for use in cryptography
SeedSequence

Added the SeedSequence class, which adheres to the STL SeedSequence concept.

The SeedSequence class provides an infinite-length (thus its size method returns 0), non-deterministic (no seed is required), irreproducible (thus its param method is a noop) sequence of arbitrarily-typed integers, and may be passed to the constructor of a seedable random number generator to thoroughly randomize its internal state.
UniformIntDistribution

The UniformIntDistribution is a very simple wrapper template around std::uniform_int_distribution which allows it to output random numbers of type char, unsigned char, and signed char, which are otherwise disallowed by a strict reading of the C++11 standard.
SynchronizedRandom

The SynchronizedRandom<T> template provides a thread safe wrapper around an arbitrary random number generator or distribution.
World Set Seed Update

Adjusted the code used to select a new seed for the world to use the RandomDevice template rather than the defunct CryptoRandom method.
Vanilla Authentication Module Update

Updated the vanilla authentication module to use the new PRNG utilities.

Also rewrote small portions of the code to make them clearer/more readable/maintainable.
SynchronizedRandom Default Constructor

Added a default constructor to the SynchronizedRandom class template.
KeepAlive Update

Updated the keep alive module to use the new PRNG utilities.
Merge branch 'random_overhaul'

Finished removing the old and ugly random.hpp header, adding replacement for the functionality therein, and integrating that functionality such that the server compiles once more.

Accordingly, merging the branch.