Refactor CharArray to use value/offset/length semantics similiar to String
Allow char[] value to be set to reference an external char[] value
Optimize away need to copy char[] value into CharArray by using new CharArray.setValue() semantics
Synchronize access to charBuffer