Switch random function to std::mt19937

Added class EQEmu::Random
Functions:
EQEmu::Random::Int(int low, int high)
EQEmu::Random::Real(double low, double high)
EQEmu::Random::Roll(int required)
EQEmu::Random::Roll(double required)
EQEmu::Random::Reseed()

For zone, you will access the random object through the zone object
ex.
	zone->random.Int(0, 100);

Int returns a random int between low and high
Real returns a random double between low and high
Roll(int) returns true if Int(0, 99) < required is true
Roll(double) returns true if Real(0.0, 1.0) <= required is true

Conflicts:
	loginserver/client.h
	world/adventure.cpp
	world/adventure_manager.cpp
	world/net.cpp
	zone/attack.cpp
	zone/bot.cpp
	zone/botspellsai.cpp
	zone/client.cpp
	zone/client_packet.cpp
	zone/client_process.cpp
	zone/command.cpp
	zone/entity.cpp
	zone/merc.cpp
	zone/npc.cpp
	zone/special_attacks.cpp
	zone/spell_effects.cpp
	zone/spells.cpp
	zone/tradeskills.cpp
	zone/zone.cpp
	zone/zone.h
Add license info
Adjust common/random.h based on N3551
Add Random::Shuffle

This is just a wrapper to std::shuffle since it requires a random
engine and ours lives in a class

Must pass random access iterators (array, vector, deque, etc)

ex:

std::vector<int> v;
/* init ... */
random.Shuffle(v.begin(), v.end());