Updated the module-level doc on c_str

Now with CStrBuf.
Added a crate-level doc comment
Improve the description on CChars
Brush up on more doc comments
Internal helpers for copying strings into CStrBuf or CString
Added a .to_string() method to CStrBuf

CStrBuf needs a one stop method for copying to a String.
More code reuse in tests
Implemented ToCStr for CString and CStrBuf

It makes sense to close the loop, and the implementation of
.with_c_str*() on those is zero-copy.
Build the no-test crate as a dependency of `make check`

The point is to make sure we have no unused code warnings in the main
code, which might be hidden by the test code added with --cfg test.