Add UTC Timestamp field to Invoice
Start with a generalised data extractor
Verify we can extract several values
Entirely ignore missing matches
add currency deserialiser
Start to pull out Extractor specs so we can simplify the higher-level specs
Add generic extract-from-mapping helper
Extractor extract_from_mapping doesn't set attrs whose xpath misses
Use Extractor.extract_from_mapping in deserialisers
Add several-mapping case to mappings specs, remove extra specs from value-specific mapping specs
Add date extractor
Begin adding constrained value extractor
extract_value returns nil for missing and bad values

This is probably incorrect behaviour for bad values. This feels like
exceptional behaviour, but I'm unsure I want to explode during
deserialisation for that. To ponder.
Wire in extract_utc_timestamps to the DSL and deserialise process
Wire in constrained values to Extractors
Deserialise all the top-level simple invoice elements

* Switch to using Extractors
Deal with UTC timestamps that are correctly formed (with trailing Z)
Deserialisers report the xpath to the root content node

This is different to the actual document root because of the response
wrapper...
Make root_node allow rooting the content anywhere, even /
Use the root_node setting in deserialise_one

* Update simple invoice fixture to include response wrapper too