Update OCD ID validation to adhere more closely to spec.

Handles non-ASCII characters a bit better and adheres strictly to spec laid out in README.md except that it allows underscores in 'type' tokens.