Cache file stats to avoid IDB lookups

- Adds |fs.fileStats| that maps paths to their file stat object
- Adds |size| to the file stat object so that |fs.size| can use the cache
Nit: add trailing semi-colon.