Add convenient random number generator

The RNG class defined in engine/rng.h offers a convenient API
to generate random numbers in specific intervals. The Engine
class holds an RNG object and offers it for clients to use.

See #55.

The following commit messages have been preserved from the
original feature branch for posterity.

Fixed compiler error for RNG manager. Still needs testing and integration

Renamed RNGManager to RNG

Fixed renaming of files: RNG to rng
Added unit tests for RNG.

Extra commit. Git is messing with me.

Added RNG object to the engine and refactored agent.cpp to use that object for random agent angles.

Added missing unique_ptr and destructor
added RNG.shuffle method with tests.

Rename RNG.* to rng.*

Update includes to use lower-case rng.h

Fix unit test for RNG::shuffle

Fixed proper exposing of RNG class to lua, and made a global rng object avaliable.
Changed fixed seed to random in engine rng object.

Updated interface for RNG

Removing obsolete random header

Move RNGSeed typedef into RNG class

Clean up RNG headers

Cleanup RNG formatting

Minor documentation changes to RNG

Remove constructors from RNG Lua bindings

For now, we don't want script authors to get any ideas about
creating their own RNGs instead of using the one provided by
Engine.