Minor change

- Adding a grunt step to create gzip versions of files in `/lib/compressed` (not supported on Windows)
- Fixing chained promises from `data.set()` for `rejection` case
- Implemented most of the "best practices" from the Quake3 code base
- Shortened the call stack where possible
- Moved all `is*` functions from `utility.proto()` to the appropriate Objects, e.g. `element`
- Misc fixes