* put parsePacketData in deserializer and createPacketBuffer in serializer
* remove packets from the index and expose readPacket instead
* load packets when needed in various files
* make tests test every supported version
static cross version of #234, fix#65, fix#240
also create a few other files containing common information and functions :
* mcHexDigest.js which contain the function of the same name used in both createClient.js and createServer.js
* ursa.js which handle the abstraction on top of ursa and ursa-purejs : used in both createClient.js and createServer.js
* version.js used in index.js, createClient.js and createServer.js
knowing when the packet has been sent is not an useful information : the fact that it's sent doesn't mean it is received and what we usually want is that the packets are in the proper order no when they are sent
createServer takes additional option 'beforePing' which is a function
receiving the response to send back to the client and the client object,
and returning a modified response to send back.
The client now has the serverHost, serverPort, and protocolVersion
pulled from the handshake packet. This can be used to proxy
the client to different backend servers depending on the domain name.