Better handling of more complex version strings

 - Parse version strings on dash (-)
 - Treat each segment as its own piece of versioning... allows
   natural sorting of version numbers and developer versions
   - e.g. 1.0.0 and 1.0.0-g-23