implemented reset-slots macro that resets each slot to the initform
  returned by 'slot'-initform function
refactored environment using reset-slots and with-saved-slots
fixed minor bug in with-saved-slots