resolves #669 allow version in component descriptor to be null to indicate a versionless component version
- allow version in component descriptor to be null or empty string; indicates versionless component version
- store versionless version as empty string internally
- add support for _ keyword to refer to empty version in resource ID