Improve sync/async API

Removed unnecessary callbacks and simplified sync and async code (incl. new `saveSync` method).

This PR also fixes #16 by adding support for an optional `mime` option to the following methods to override the default `image/png` mime:

- `image`
- `save` (in browser)
- `saveSync` (in browser)
- `toDataURL`