Simplex Noise, Player

Started implementing player-related functionality by implementing a
PlayerPosition class, which can be used to store the information
contained in, parse, and create 0x0A, 0x0B, 0x0C, and 0x0D packets.

Also automates the measurement of time a player spends in the air.

Refactored random.hpp/random.cpp so that the random number generation
utilities it provides -- particularly the cryptographically-secure PRNG
interface -- are more accessible/usable.

Implemented a simplex noise generator and a variety of filters which can
be chained together on top of it.