Add support for null-terminated strings

Am a bit unsure whether [seeking in the stream](https://github.com/timkurvers/restructure/blob/358492537fc9909f46a0387dbe18ed0b8cb1174b/src/String.coffee#L11-L16) in the `decode` method will work under all circumstances.
Use `@length?` here (and everywhere else) instead. Currently a length of zero will trigger null terminated strings. We should only allow null or undefined to cause this.