Use promises in the JS contents API

Switch from passing success/error callbacks to returning ES6 promises.

Opening early so we can see if Travis likes simple promise use cases.
actually delete this line.  But I'm not sure what options might be passed to ```get```.  Maybe we should be doing
```
options = options || {};
options.type = 'directory'
```
?