codec: improve performance 5-20%, and support finalized msgpack spec.

Performance improvement came from using integer keys in maps where reflect.Type
keys were previously used. Gave 5-20% improvement as this was called at every
iteration of recursive function (encode/decode).

Also, support newly finalized msgpack spec, with support for extensions,
Str8, etc. Full binary compatibility flags exist as before (RawToString, WriteExt).

Also minor clean up (comments, docs, etc).
Add msgpack.org.md to show up on msgpack.org site.
msgpack.org.md: added go syntax highlighting to code snippet.
msgpack.org.md: update
codec: msgpack: support decoding str and bin formats into []byte (thanks zhenjl).

Bug reported by Jian Zhen <zhenjl@gmail.com>.
codec: updated docs to say that numbers and floats are decoded into nil interfaces as int64/uint64/float64.
codec: updated docs to reflect the correct API for client codec
codec: Support decoding into a struct from an encoded array.

We now keep track of the current encoded type, and when decoding into a struct,
we decode by field name if a map, and by field position if an array.

Also, decodeNaked has been simplified so that the decodeHandle is not passed in
as a parameter. Instead, each *driver keeps a reference to the *Handle that created it.

Fixes #13 .
codec: Support encoding structs as arrays (not just as maps).

Encoding struct as array allows type-safe arrays of different go types.

Also, cleanup decode.go by removing rawToStringOverride.
This was a vestige of the old msgpack extension support which should never
have bled into decode.go.

Updates #13 .
codec: fix encode/decode struct to array. Other misc fixes.

- Use pointers now that size of structFieldInfos has grown.
- Use unsorted field names consistently.
- Fix up test initialization

Update #13 .
codec: decode struct from encoded array should stay within length of encoded array.
Merge branch 'master' of https://github.com/ugorji/go