Drop pointless #include
boost::shared_ptr -> std::shared_ptr
Fix nix-shell for derivation with multiple outputs

If derivation declares multiple outputs and first (default) output
if not "out", then "nix-instantiate" calls return path with output
names appended after "!". Than suffix must be stripped before
ant path checks are done.
nix-env: Add support for --delete-generations 15d

It will delete all generations older than the specified number of days.
nix-collect-garbage: Add --delete-older-than option