client: Add milter_client_context_{set,get}_shelf()

This shelf is intended to be used as mail-transaction scope
storage.

GitHub: ref #42
binding ruby: Replace Milter::ClientContext#{shelf,shelf=} to wrapper

GitHub: ref #42
bindinf ruby: Fix test case for Milter::ClientContext#{shelf,shelf=}

GitHub: ref #42
binding ruby: Milter::Manager::ChildContext#{shelf,shelf=} parse/generate JSON

Because Milter::ClientContext#shelf can store only String.

GitHub: ref #42