Add BuildOption, BuildEnv and PackageOption types
Add BuildOption which is a type to track generic option strings that
may be prefixed by a "!".
Add BuildEnv to track option strings available to a build environment
(a wrapper around BuildOption).
Add PackageOption to track option strings for packages (a wrapper
around BuildOption).
Closes #3 (closed) Closes #8 (closed)