Shortcut already-hardlinked files

If an inode in the Nix store has more than 1 link, it probably means that it was linked into .links/ by us. If so, skip.

There's a possibility that something else hardlinked the file, so it would be nice to be able to override this.

Also, by looking at the number of hardlinks for each of the files in .links/, you can get deduplication numbers and space savings.
fix typo
nix-instantiate --eval: Apply auto-arguments if the result is a function

Fixes #254.
Prepare nix-mode to be uploaded to marmalade

Signed-off-by: Ricky Elrod <ricky@elrod.me>
Preload linked hashes to speed up lookups

By preloading all inodes in the /nix/store/.links directory, we can
quickly determine of a hardlinked file was already linked to the hashed
links.
This is tolerant of removing the .links directory, it will simply
recalculate all hashes in the store.
Remove redundant code
Use the inodes given by readdir directly
Shortcut store files before lstat

readdir() already returns the inode numbers, so we don't need to call
lstat to know if a file was already linked or not.
Merge branch 'master' of github.com:wmertens/nix
Remove tab
nix-store --optimise: Remove bogus statistics
lvlInfo -> lvlTalkative
Provide a more useful error message when a dynamic attr lookup fails
Add test for declarative nix path primop
Make import syntactic sugar for importWithSettings
Make it possible to override the parse settings in evalFile
Pass the current parse settings in the import->importWithSettings sugar
importWithSettings: Initialize a ParseSettings from the settings argument
Expand __curSettings to the nixexpr repr of the current ParseSettings
Fix reference to builtins.import in nix-env.cc