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 offset parameter to Packet constructor

The server class has to tell the packet where to start reading.
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.
Merge pull request #17 from aura-project/clean_packet

Improved Packet Class
Added skill helpers

for Defense (skill), Defense and Protection.
Added Defense skill handler
Added Defense training
Follow up d03e8b5e9624f1862bfee2f724e4d165ce7d968a
Fixed a bug with the skill quest rewards
Added QuestCompleted and CompleteQuest

to NpcScript, for easy quest managing.
Added basic Ranald NPC
Added Go to School quest
Added combat_system option
Fixed Defense cooldown
Experimental fix for #18

Added a bool that's set to true when Prepare is called and false once
Complete or Cancel were invoked. That value is then checked before
Preparing, trying to prevent two active skills.
Fixed item reward in quest Go to School

Got the wrong Defense Guidebook
Merge pull request #19 from aura-project/skill_cast_stuck_fix

Experimental fix for #18