Cleanup reader pt1

Reader needs some serious cleanup. Going to keep the pull requests small. 

View on a per-commit basis, the first and third commit need review.

The second commit is just moving methods around within the reader.

Biggest changes:
 * Limits how much of the astyanax internals we leak outside of the reader
 * Gets rid of leftover code and overly broad typing left over from when MetadataCache could handle non-strings. If/when we want this functionality, we can re-add it. Until then, let's make the code cleaner taking advantage of the fact that we only handle strings.