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.
Minor nitpick: use `===` unless you really really mean `==`