Overhauled completeness check function

Completeness check now looks at a list of required keys and loops
through that list to ensure that all required keys exist in the
traveller item before checking if those items are filled in.