add InvalidDescriptorFileError and spec
refactor descriptors to take a hash
rename action to descriptor in descriptor
fix typo
Merge branch 'add_invalid_descriptor_file_error' of https://github.com/ruprict/obvious into ruprict-add_invalid_descriptor_file_error