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.
Not that big of a deal, can fix that really quick. Rest of the code looks good :)