Update project template to version 0.4.2
Moved exceptions that belong to 'base' package under their own package
in org.openremote.base.exception.
- Adapt the version class for subclassing
- Add a constructor for parsing a string version into version
  instance
Update project template to V0.4.3 -- exclude package-info.java files
from Java style checks.
use standard version style convention
Add project manifest file
Add a base checked exception class. This should be moved to base
project repository once it is created.
Version:

  - handle checked invariant exception in copy constructor
    making it more flexible for subclasses to use
DeviceDiscoveryTest:

  - include testing the value of API version in the JSON header
    properties
APIVersion:

 - Add a specific subclass of version that is suitable for API versioning
   with more limited two number 'major.minor' versioning convention.
JSONHeader implementation:

 - this is a common JSON header (set of properties) that should
   be included with each object model instance that is
   externalized to JSON data format. It includes fields to identify
   the origin, version and compatibility of the JSON data between
   versions and implementations.