Return nil if meta_description or need_id are missing from a flow

Fetch method on the front matter model has been 
changed to allow an optional default to return if 
an attribute is missing instead of raising an error 
(same behaviour as the fetch method on ruby hashes)
Make Frontmatter.fetch a bit more understandable, and add more tests

Using splat arguments lets Frontmatter.fetch self describe more clearly.

Add a new test to spec what happens if any additional arguments are sent (as
*args will capture many arguments).

Add another test for some negative cases too
Merge pull request #77 from alphagov/catch_deploy_errors

Return nil if meta_description or need_id are missing from a flow
Implement #error and #valid? for nil input values on Answer
Populate state with answers, stay in same state when invalid answers
Date Answer validation messages
Salary Answer validation messages
Multiple Choice validation message, refactor not-nil check
Store accepted_responses on Engine::State
Implement #current_answers and #accepted_responses for State
Previous_question_pages on state no longer take argument
Stop treating "y" as a response in Api::State
set value of date answer to be nil if there was an error in parsing.
Use answer objects for Transition
Fix to_s formatting for salary
Document use of answer/response terminology
Use node names not titles in flow spec

This makes the tests less brittle in case we change the copy of the
question titles.