Rewrite some code for efficiency, fix bugs and add test suite.
- Update source and target compatibility to Java 7, removing support for Java 6.
- Use try-with-resources from Java 7 for try-catch blocks.
- Make reader thread-safe for multithreaded applications.
- Use generics for NBT tags and their payloads.
- Fix mistake where NBT byte arrays always had null names.
- Add test suite for reading and writing NBT data.