destroy dependent records
Merge pull request #65 from ministryofjustice/destroy_dependent_records

destroy dependent records
store office details from fee group reference service
Merge pull request #66 from ministryofjustice/store_office_details_from_fgr_service

store office details from fee group reference service
updated country label for CLaire on /claimaint page
more changed to copy as per Claire's editorial doc
Time limit copy change
Various content changes
copy fixes
Merge pull request #67 from ministryofjustice/editorial

Editorial
Content changes

Representative intro, other type of claim, check your details
copy fix
Merge pull request #70 from ministryofjustice/editorial

Content changes
PaymentGatewayCheck

PaymentGatewayCheck periodically polls the payment gateway to determine its
availability status. PaymentGatewayCheck.available? returns the last result.
The check is made in a background thread.

This commit also introduces a generic PeriodicTask class, which other projects
may find reusable for these kind of lightweight tasks.
You can always rely on Travis to expose a race condtion. Cheers pal. xxx
"Gratuituous metaprogramming" cc @threedaymonk 😂
ClaimFeeCalculator

Original behaviour was incorrect. I have amended it to what I now understand
as correct and I am waiting on Helen to confirm.

Changes:

 - If there is one claimant and they are applying for remission, the remission
   amount is 100% of the application fee
 - Simplification of the specs.
Claim#payment_applicable?

Returns true if all of the following are true:

 - The payment gateway is available (PaymentGatewaycheck.available?)
 - The claim has a fee group reference
 - The application fee after remissions have been applied is > 0

Returns false all other times
Claim::FiniteStateMachine

Add an FSM to Claim to manage state transtions when submitting