Loads entities from backups into memory in python

Summary:
Allows simple loading of entites from backups for in memory processing.

Not sure if something like this already exists - I think Eliana has something similar, but I couldn't find it.
Uses generators to lazy load entities and lazily open/quickly close files.

loader.entities("VideoLog", limit=1000) gives a generator that yields the 1000 most recent backed up VideoLog entities from today

Will require a little tweaking to get working with all the entities - just does VideoLog and ProblemLog ents at the moment.

Test Plan:
Use this to load a few thousand recent entities in memory (one at a time)
and do some aggregation over them.

eg)
  from collections import defaultdict

  from entity_loader import EntityLoader

  if __name__ == "__main__":
      loader = EntityLoader()

      totals = defaultdict(lambda: 0)
      counts = defaultdict(lambda: 0)

      for log in loader.entities("VideoLog", limit=10000):
          data = log.get('data')
          title = data.get('video_title').encode('utf-8')
          time = data.get('seconds_watched')
          totals[title] += time
          counts[title] += 1

      for title in totals:
          print "%s: %d (%d)" % (title, totals[title], counts[title])

Reviewers: mattfaus, jace, eliana

Reviewed By: eliana

Differential Revision: http://phabricator.khanacademy.org/D3468