In order to handle the self-assign case, string::operator= moves the
string, which may copy the string in reverse. The MGBA string register
does not allow this I believe. In order to avoid this, it now uses a raw
character buffer and is copied using string_view::copy.
string_view::copy will always copy the string forward.
MGBA debugging must be enabled using debug::open and disabled using
debug::close. This commit adds logging through debug::puts. TODO: add
logging using debug::printf and debug::write.