Allowed persistence of custom properties when resetting envelope state.

When resetting the envelope state, any custom properties that may have been populated on the envelope are removed. This pull request resets only the necessary properties on the envelope - leaving any custom properties to be handled by the user's own libraries.

I haven't yet written a test for this, but I have verified it's workings in my own code. If you'd like a test set up for accepting, I'm more than happy to do so.