Make ReflectiveVariable implement BindableReadOnly.

This is needed for distributed port to work. In the DSS, when we share the
stream, we would make the stream become a reflective variable to also
share the changes to other sides. But a ReflectiveVariable was not a read-
only variable, so calling `sendToReadOnlyStream` will crash with an
unexpected type exception.

This commit makes ReflectiveVariable also BindableReadOnly, by implementing
`bindReadOnly()` to do the reflective bind. This allows the port to work
and also distribute the changed stream.
Reflection: Added `Reflection.isReflectiveVariable`.

This checks whether a value is a reflective variable. This is the only way
to distinguish between a reflective variable and other variables without
waiting. Reflective entities can be checked using the existing method
`{Value.type V} == reflective`.
Make ReflectiveVariable.bindReadOnly send a different message than bind.

(Fix comments in PR #94.)
Merge pull request #94 from kennytm/make-reflvar-bindablereadonly

Reflection extras