Moved ROS service discovery out of discovery.py

This allows me to run coverage on the discovery
module more easily.
catch ValueErrors and reraise as InvalidSpec
add common module for validating spec names
Enforce correct spec names in all spec parsers
Use fully qualified spec names in all test data