add SpecNameKeyedDict class and extended SpecName
catch ValueErrors and reraise as InvalidSpec
Add support for fully qualified names for specs
Use fully qualified spec names in all test data