Instead of having an unbounded internal file cache which will
eventually absorb all memory of the running/containing python
process have the size of that cache be limited by an optionally
provided size (and have eviction be based on how recent a cached
entry was used).
Fixes bug 1458248
Change-Id: I5e59efc4edd51b05cfb1e67d3e7014e378e352aa