Use Newtype pattern for Name and implement BuildTool type
Change the implementation of Name to follow the Newtype pattern to
allow for easier use as a String (which the type wraps).
Add Ord and PartialOrd macros for Name type to allow for easy
comparison operations.
Add the BuildTool type to describe a buildtool name. The type wraps a
Name and can be further verified by matching against a list of Name
instances.
Closes #4 (closed)