Update Save handling

Saves are now done in after_request callbacks so errors can be handled
cleanly.

clear() is always executed in the app context teardown.