Protocol 1.7 support, Yggdrasil login support, new Client State API
Add new chat client example
Merge pull request #69 from roblabla/feature-mc1.7

Feature mc1.7
Merge branch 'upstream'

Conflicts:
	examples/client_chat.js
	lib/client.js
	lib/protocol.js
	lib/yggdrasil.js
Add packet name <-> ID lookup
Uniquify packet names across states
Allow listening on and sending packets by name; don't emit decoded packet events if payload not parsed
Allow passing packet name to createPacketBuffer()

Conflicts:
	lib/protocol.js
createPacketBuffer() state optional, allows passing just packet name and params

Since packet names are now unique (across states, though not client/server),
the name infers the state so it can be omitted and looked up. For more convenient
API usage, example:

    createPacketBuffer('chat_message', {message: 'hi'})
Update client_chat example to allow offline mode (if no password argument given)
Fix merge of createPacketBuffer packet name support
Update examples to demonstrate using packet names
parsePacket() state default to PLAY, simplifies usage to parsePacket(buffer) in common case
Merge packet fields/names data structures
Tentatively remove [state,id] stringified array event
Merge branch 'feature-packetnames'

Conflicts:
	examples/client_chat.js
	lib/client.js
	lib/protocol.js