Memoized file only model

Using the new MemoizedFile throughout the model instead of java.io.File. 

This builds on top of #1034 so also needs some perf testing to make sure we haven't regressed before it's merged. #1034 should also be merged in first.

<!---
@huboard:{"order":1035.0,"milestone_order":1035,"custom_state":""}
-->