Make exception messages match the ones from OpenJDK/Android

This commit changes the exception message format of
ClassCastException and CloneNotSupportedException.
remove unecessary PROTECT statements

Since there's no possibility of garbage collection during the
lifetimes of these local variables, there's no need to protect the
references.