Class SetOnce<T>

A convenient class which offers a semi-immutable object wrapper
implementation which allows one to set the value of an object exactly once,
and retrieve it many times. If set(Object) is called more than once,
SetOnce.AlreadySetException is thrown and the operation
will fail.

WARNING: This API is experimental and might change in incompatible ways in the next release.