The two functions for opening were almost identical. The only
difference was that one was passed a string ID and the other a
raw string. The one taking the string ID now converts it to a
raw string, and then calls the other functions.
This also makes the utf8 string const and replaces some C-string
code with String::Set.