Enhance cookbook version parsing and validation

 All cookbook version validation is now handled by
    chef_cookbook:parse_version. This avoids having a regex validator and
    a separate parse function.

    The chef_cookbook:parse_version function has been improved to better
    match Chef cookbook version requirements:

    * Less strict: it now accepts 1, 1.2 as valid inputs and maps them to
      1.0.0 and 1.2.0, respectively.

    * More strict: negative version values are disallowed. Version values
      outside the range of a postgres int column (2147483647) are
      disallowed.