RSVP.wrap tames crazy promise implementations

provide a mechanism to wrap and attempt to make non-compliant
thenables into compliant thenables.