go directly from Bytestring to CStringLen

Currently, newCBStringLen unpacks a Bytestring to a list of Chars, then packs it back
into a CString. This is very slow. Copying directly gives two orders of magnitude
speedup in my tests. If you like this change, the rest of Utils should probably be
modified to work similarly.