*: 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 :-(
cas: write download progress to stdout

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

Fixes #208
Godeps: add ioprogress dependency.