Unpredictable String with extensive discussion

Currently, it does not take advantage of the fact that it is a String
object, it does not call super in the initialization method (or for that
matter rely on the initialize method of String itself, we could even NOT
have an initialize method at all in our class.

This is full of notes, exploring how to make our UnpredictableString
truly appear unpredictable.  We learn that Rubinius would call the to_s
method when puts is used, regardless that it is already a String,
contrary to how MRI Ruby handles it.

MRI does not call .to_s on a String object when using string
interpolation or when calling puts or prints like it does on other
objects.