cas: use tmpfile when writing into disk store

Instead of writing into a temporary disk store, calculating the hash,
and then rewriting into a new entry in the diskstore with the hash as
the key, write to a tempfile on disk outside the store and then use the
new Import method to move the file into the store.
cas: use subdirectory for tmp files
Merge pull request #280 from jonboulle/cas_move

cas: use tmpfile when writing into disk store
docs: update getting started guide
Merge pull request #285 from jonboulle/gsg

docs: update getting started guide
gc stuff

Conflicts:
	stage0/run.go
pkg/lock: cleanups, blocking vs. nonblocking calls, FD extraction
rkt gc: implement gc

Container directories deemed inactive by exclusive lock acquisition are
atomically renamed to /var/lib/rkt/garbage, the directory's ctime gets
updated as part of the rename.

The /var/lib/rkt/garbage directory is then scanned for directories having a
ctime older than --grace-period (defaults to 30m).  Qualifying directories
are deleted under another exclusive lock.

All lock acquisitions are non-blocking with failures being ignored.

Functions like gc status will have the grace period window for retrieving
statuses from inactive containers in either the containers or garbage
dirs, and should access the status files under the protection of a shared
lock.

Examples:

 Container "a983198b-79e3-432e-ad31-f105e96aa003" has recently exited:
   $ bin/rkt gc
   Moving container "a983198b-79e3-432e-ad31-f105e96aa003" to garbage
   $

 Immediate subsequent gc finds nothing to do:
   $ bin/rkt gc
   $

 Immediate subsequent gc force-discard by setting grace period to 0:
   $ bin/rkt gc --grace-period=0
   Garbage collecting container "a983198b-79e3-432e-ad31-f105e96aa003"
   $