TODO for cStringBuffer:
-----------------------

Complete:
* Add libtool support.
* Add mutexes to allow for multithreading.
* Rewrite printf to remove vasprintf() dependency.
* Move mutex locking/unlocking out to separate functions.
* Split functions into separate files.
* Modify/annotate code for splint
* Preserve ungetc buffer when resizing buffer
* Grab characters from ungetc buffer when using csb_read()
* Add string search functions.
* Truncate functions
* Add netstring (http://cr.yp.to/proto/netstrings.txt) functions

Done, pending testing:

In progress:
* Add test suite.
* Possible optimization?

Pending completion:
* Better documentation.
* Add splitting/replacement functions.
* Add helper functions for file IO->string buffer
* Readonly strings (?)
* Add functions that take csb buffers as well as just C-style strings
* "Secure string" - overwrite buffer with ones and zeros when destroying to prevent sensitive data from being exposed.
* Refactor code to remove excess duplication.
* "Helper modules" - can do things such as access checking (readonly), pre/post writes, etc
* Raw socket functions to complement functions requiring FILE*
