*: build a limited version of rkt on non-Linux

This introduces build tags to allow the actual rkt binary to be built on
platforms other than Linux. This does not change our current focus of rocket
being targeted at the Linux/amd64 platform, but means that users on e.g.
OS X and other operating systems can at least use `rkt fetch` to
retrieve ACI images and so forth.
rkt: have commands register themselves
build: only build ACE validator if go linux/amd64 is available
pkg/tarheader: support hard links when building tar headers

This introduces an inode "cache" that can be used when populating a tar
header (pkg/tarheader.Populate), so that any inodes already seen can be
linked to instead of inserting an entire copy of the file into the tar.
pkg/tarheader: cast inode up to uint64

Some systems (FreeBSD included) have uint32 as syscall.Stat_t.Ino
build: Fix non-POSIX commands realpath and mktemp

realpath is not POSIX and not available on all systems.
POSIX mktemp requires a mandatory template argument.
Merge pull request #222 from jonboulle/hardlinks

actool: properly deal with hardlinks when building images
Merge pull request #166 from jonboulle/build_osx

rkt: build a limited version on non-Linux systems
appc/spec: various updates

- Add version/name/arch to metadata service explanation
- Remote obsolete metadata rationale
- Remove versions (e.g. "-1.0.0") from names
- Fix a few formatting issues (prefer line-per-sentence)
Merge pull request #232 from jonboulle/spec-labels

appc/spec: various updates
stage1: fix bad path reference :-(
appc/spec: Collapse app and fileset manifests

This reworks the app image and fileset concepts to collapse them into a
single manifest, the App Image Manifest. The execution details are now
optional. It also describes a dependency retrieval/matching process
based on labels.
appc/spec: path_whitelist -> pathWhitelist
appc/spec: "app" -> "manifest"
cas: write download progress to stdout

Using mitchellh/ioprogress, implements a visual for the process of
downloading an aci.

Fixes #208.
Merge pull request #231 from jzelinskie/master

cas: write download progress to stdout
appc/spec: minor cleanup
*: numerous updates to match spec

Changes to schema:
- removing FilesetManifest
- update example manifest to match that in spec
- splitting out App into a dedicated type embedded in AppImageManifest

Changes to tools:
- update aci writer (no more filesets)
- update actool build (no more filesets)
- update actool validate (no more filesets)
- update ace validator to use new types
- update rocket stage0/stage1 to new schema
- update ace app manifests to new spec
- fix a bug in build_aci (double compressing aci)
Merge pull request #241 from jonboulle/spec_app_images

appc/spec: Collapse app and fileset manifests
*: AppImageManifest -> ImageManifest