Update match factory with last naming changes

Conflicts:
	spec/factories.rb
Generate new db table to relate contributions with matches
Generate matched contributions on creating contributions
Control Match state only by its dates

This change allow us to remove the need of constantly updating the
state.

Conflicts:
	app/models/match.rb
	spec/models/match_spec.rb
Generate new contributions based on active matches for its project
Define specs for implementation of MatchedContributionAttributes
Keep matched contributions' state updated with its original contribution

Conflicts:
	spec/factories.rb
	spec/models/concerns/contribution/state_machine_handler_spec.rb
Remove development comment
Get payment_service_fee_paid_by_user value from match on matched contributions

Without it, a matched contribution (one generated from another when a
Match related to its Project is active) would result in
Contribution#payment_service_fee_paid_by_user being assigned with false
even when the Match creator paid service fees, since the default value
for Contribution#payment_service_fee_paid_by_user is false.
Ensure that non confirmed matches are not active

Conflicts:
	spec/factories.rb
Use subject helper in MatchedContributionGenerator spec
Add missing expectation to existing spec
Rename method for better understanding
Move generation of matched contributions to observer
Use #double helper instead of deprecated #mock in specs
Make models of postgres views readonly
Update reports views to calculate fees for matched contributions
Update matched contributions using PaymentStateMachineHandler
Take payment service fees out on net_amount of ProjectTotals
Move net payment of a contribution to a db view