When no record matches the requested criteria a scope will return all
the records
In this case, if no record can be found we want the result to be nil
Also, make some readability fixes in specs
Add field cfp_type and relevant validations
Add Program#cfp to preserve backwards compatibility
Add 'for_events' scope to the cfp, in order for it to be used like
program.cfps.events
Add useful methods
Add rspec test for the new code
The supported cfp types can be viewed via Cfp::TYPES