Added (some) unittests and refactored code inline

- added start of the test suite.
  * checks PKG comparison operaters against version strings
  * checks the required attributes are present
    * NOTE: this does not yet validate these attributes.

- Refactored libhouston to allow tests to pass:
 * __label_cmp__ function refactored as Method of PKG class
 * _convert_label_to_list function now does not cast ints, but leaves them
   alone as this caused issues when call isdigit in __cmp__.
 * added two contants __NEWER__ and __OLDER__ to simplify return values of the
   rich comparison functions in PKG class
 * refactored __cmp__ to duck type its arguments between another PKG obj or a
   version string
 * re-arranged the length check in __cmp__ as need the check only if both
   elements are equal
 * refactored rich comparison magic functions to correctly raise not
 * implemented or call __cmp.