Save target date in the application model

Adds `target_date` to the `Application` model and pulls out the target date extraction from the `extract_delayed` method of `PMDApplicationProcessor` so that it can be updated alongside the other application attributes.

The `extract_delayed` method gains an optional `target_date` parameter so that it doesn't duplicate the functionality of the `extract_target_date` (it calls `extract_target_date` if the value is not passed in or is nil, the downside of which is that if there is no target date in the datastore, `extract_target_date` gets called twice).

The specs have been rejigged accordingly.