Move to sized types.

u32 is good for versions, but build numbers often appear as dates, which
are much larger.
Move parse result to Result

Result is better than Option in this case.
Naïve port of version requirements from Cargo
Break into sub-modules
Move tests into a module.
Remove unused exports
Make the two modules public
Work on docs.

This involves a re-write of the main documentation, with some exmaples and stuff.
Fix some unused import warnings
parse error should be clonable
Update .travis.yml to use the non-deprecated version of rustup.sh.
Merge pull request #4 from TimDumol/travis-rustup

Update .travis.yml to use thernon-deprecated version of rustup.sh.
Merge pull request #1 from globin/master

Derive Clonable for ParseError
Re-export rather than make directly private.

This cuts down on verbosity.
Make more stuff private
Move parse to Version::parse
Move Result to an enum rather than a String
bump to unstable
rename as requirements
fix style