Prevent non-byte values appearing in str(), fixes #2037.

The constructor is augmented with a test to raise IllegalArgumentError
if supplied a Java String (etc.) with any code point over 255. Also,
the __str__ and __repr__ of proxied Java objects are modified to return
unicode objects, with the result that str(o) raises UnicodeEncodeError
for Java objects where o.toString() is not pure ascii.

--HG--
extra : amend_source : 2cec338024a2917f68683780d24ca7b3d78c70f2
Merge str bytes check to trunk