Strings 2

Replace c string code with c++ versions (rebased, a second time). This rebase avoids the find a replace debacle and merges a few commits. No tests should fail now.