Pass form in to RecordData and extractor

Allows us to make sure the fulcrum form exists before we even call this
at all.
This is important in the case we get an event and the fulcrum form
doesn’t exist at all.
Update the specs where it is used to pass in the form.
Add a context to provide a default form for use in the specs.
Make fusion specs pass

They need a stubbed form for record events here, so we use one.
Accept record events where fulcrum form doesn't exist

Issue #4.
Previously, the code would blow up since it was expecting to find a
form but it had already been deleted on Fulcrum.
This checks that the form exists before doing anything with the record
data.