Added OS.getPID, .uName and .getHostByName.

Note: OS.uName currently is not supported in Windows.
Changed flow of GetHostByName to ensure destruction even on exception.
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
Merge pull request #79 from kennytm/some-os-additions

Added OS.getPID, .uName and .getHostByName.