Introduce TinkerFile interface and factory.

TinkerFile and TinkerFileFactory encapsulate different file storage approaches.
Merge pull request #2 from spmallette/master

TinkerFile and Factory Classes