[WIP] Cache namespace

キャッシュ機構を gem に切り出すためにまずは名前空間を IO とは独立して扱えるようにしています。