Accepts a defaults value for read() and readJSON() returns the defaults content instead of throwing error

@SBoudrias 

As per discussion on #9 
Maybe just using the new `#exists()` method (merged today) will help with simplifying the default content logic.