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

@SBoudrias 

As per discussion on #9 
Do we expect `readJSON`'s `defaults` be string content or JSON object? If it is an JSON object, then `readJSON` would become something like this (after moving `this.exists()` check into `read`):

```js
module.exports = function (path, defaults) {
  var content = this.read(path, { defaults: defaults });

  if (typeof content === 'string') {
    return JSON.parse(content);
  } else {
    return content;
  }
};
```

Did I get this wrong? It does not seem better than the current version of it.