Fix a crash constructing Player objects on API < 9.

The hashcode functions call String.getBytes(Charset charset), which
doesn't exist on Android API < 9 (anything below Gingerbread), and
throws an exception.

Check for API < 9, and fallback to String.getBytes("UTF-8"), and
String.getBytes() if that also fails.