Fix InvalidCastException bugs in TryGet- methods

## 概要

#8 によって生じたバグの修正と、それに伴うプロパティの追加。

## 目的

`TResultDerived : TResult` のとき、 `IReply<TToken, TResultDerived>` を `Reply<TToken, TResult>` のキャストに失敗する (`IReply<TToken, TResultDerived>` にはできる) ので、TryGet- 拡張メソッドで例外が発生する可能性がある。

## 詳細

* TryGet- 拡張メソッドを真面目に実装した。
* 実装において必要なため、`IEither<,>` に `Hand` プロパティを、`IReply<,>` に `Status` プロパティを追加し、それぞれ適切に実装した。