schema: add omitempty json tag option to optional types.

On Marshal empty types will be omitted instead of creating a lot of
"type": null json objects.

Example.
Before:
{
    "acKind": "ImageManifest",
    "acVersion": "0.1.1",
    "name": "example.com/test",
    "dependencies": [
        {
            "app": "example.com/test02",
            "imageID": "sha512-c98bf6328037ba1272e2a36142405835ced3e44504e39eb9d02f64f59f598790",
            "labels": null
        }
    ],
    "labels": null,
    "pathWhitelist": null
    "annotations": null,
}

After:
{
    "acKind": "ImageManifest",
    "acVersion": "0.1.1",
    "name": "example.com/test",
    "dependencies": [
        {
            "app": "example.com/test02",
            "imageID": "sha512-c98bf6328037ba1272e2a36142405835ced3e44504e39eb9d02f64f59f598790"
        }
    ]
}
actool: truncate file during build if overwrite=true
Merge pull request #66 from sgotti/schemaomitempty

schema: add omitempty json tag option to optional types.
Merge pull request #67 from jonboulle/trunc

actool: truncate file during build if overwrite=true
schema: Fix optional Dependency.ImageID

Unmarshalling a json ImageManifest or programmaticaly creating an
ImageManifest without a dependency's ImageID will create an empty Hash
struct. On Marshall it will call assertValid that will correctly fail.

This patch make Dependency.ImageID a pointer.