add support for outputting a Semver compatible build version

Currently we pass the git describe output straight through as the build
version.  This makes it difficult to parse the package name since it
does not follow any package/version naming convention.  This commit adds
a new `server` method which produces a Semver compatible build
version.
add test coverage for Omnibus::BuildVersion \o/
update Omnibus.library.version_map to use semver
DRY up build_version_spec with named subject
add some tests for chef-client git tag variations

Chef uses tags that are RubyGem compatible. Gems only allows '.' 
separators between the patch and pre-release version as opposed to 
Semver which prefers '-'.
convert Omnibus::BuildVersion into a real instantiable class

The previous version was a module with memoized functions that were 
leaking instance variables all over the place!
require 'time' so we ensure `strptime` is available

When 'time' is required, Time is extended with additional methods for 
parsing and converting Times.
make comments on semver method a little more explicit
remove spaces in version_guids so version manifest is easier to parse
document specs for git describe parsing
move build_start_time calculation logic into a private memoized method
Merge branch 'semver-support'
Modify release script to copy only msi files as release artifacts
Merge pull request #21 from opscode/windows-release-msi-only

Modify release script to copy only msi files as release artifacts
add package iteration number to MSI package name
set windows build iteration independently of linux platforms
CHEF-2576 - SmartOS bits