fix error types, support promises on convenience methods

closes #48
show deprecation warning for .write()
Merge pull request #49 from jonathanong/strings-are-not-errors

fix error types, support promises on convenience methods
Merge pull request #51 from jonathanong/deprecate-write

show deprecation warning for .write()
use native Promise if available