Creating a NULL CharString makes an empty String
Improved timing

Timers now are split by sub-components and a more accurate breakdown is
available. The calling interface is much less confusing now.
Remove unused variables
Disable lame windows compiler warnings