use getCacheStat before lock, fixes joyent/node#3821

Previous code did not handle the cache dir's permissions consistently.
If the first lock was done as sudo, the cache directory was not user
writable.
Removed the now unnecessary guard and collapsed the then function.
doc: Fix typo
Guard against falsey versions value.