Initial version for code review

Because the initial development was occurring on master, there isn't an easy way to do code review. This pull exists solely as a means to code review the entire project. Any changes will be put straight into master and this pull will be closed and the `initial-code-review` branch deleted. All future development will use pull requests into master to facilitate code review.
> Also, unless I missed something, Membackend -> Memcache

Oops. `s/cache/backend/` was a bit too aggressive. I thought I fixed all of them, though. Fixed with 7c06de9baba2ea1d0edb27c8885bcae67cbf4e26.

> this is weird. I think we should handle this somewhere else, maybe? cast to int from Memcache or some TestMemcache wrapper?

I agree. I [changed it to `assertEquals`](https://github.com/iFixit/Matryoshka/commit/c8a7ebca47029a3178f7e626140f5f370c8e947f) because the test fails when run in travis. I'll see if I can track down what the issue is.

As far as casting to an `int` in `Memcache` - we can't convert all numeric strings into integers because the user might have meant to store a string rather than an int.