Small cleanups to Regexp module

@benharsh

- Use string/c_string.length to be consistent throughout the file (it also reduces the work of function resolution and inlining slightly since .size calls .length and both are inlined)
- Simplify the stringPart specific logic surrounding the .length calls since now we use the same field name
- Comment a couple of places that seem like they needed stringPart logic but
- Add a comment for stringPart regarding the possible use of c_string rather than string
- Fix regexp:error() to return a string as the return type is specified (previously was returning c_string)
- Fix _cast() for multi-locale case (I suspect there is no test case for this)