Moved overall packet header building

The packet shouldn't be responsible for adding the overall header and
checksum, the client can do that before sending it. This should make the
implementation of different protocols (MsgrServer) easier and cleaner.
BaseClient/DefaultClient abstraction

Client was actually what should've been the DefaultClient
Added castTime parameter to IPreparable
Added offset parameter to Packet constructor

The server class has to tell the packet where to start reading.
Added Send.SkillUseStun
Changed active skill to be reset after Complete
Fixed CombatAttack handling only

out of range and success responses.
Added test Smash handler
Added example for DefaultCombatSkill
Revert "Added example for DefaultCombatSkill"

This reverts commit a0b1d9e3ed352bf7f6478efa4acf79d4113de2f5.
Changed Smash to use consts
Added ManaShield helper method
Added Critical Hit helper
Added Smash skill training
Merge pull request #13 from aura-project/smash

Smash
Fixed skills not being canceled when dying
Disabled data caching under Mono
Fixed smash being trained by normal hits
Fixed NPC's survive method

Monsters with high will (through skill bonuses) were "invincible" with
our previous ShouldSurvive formula.
Fixed packet forwarding

Prior to this you couldn't forward a received packet without rebuilding
it.