Part 1 of NUL bytes in strings and explicit string lengths

This compiles, but the tests still use the deprecated string function so they don't compile, and the docs aren't updated.  What think?