Allow options to be passed to save/remove

This should fix #2494, and additionally allows options to be passed to both `save()` and `remove()`.

Wasn't real sure how to go about writing an automated test for this or where to put it.
doh, yeah, copied this pattern from elsewhere in the file, any way we could get a jshint config in the repository, wouldn't mind cleaning all that up moving forward.