dirstate: make dir collision logic faster
- shortcircuit decpath if we haven't built the _dirs map
- increment only for leafnodes of directory tree
(this should make construction more like O(nlog n) than O(n^2))
% should fail
abort: path contains illegal component: .hg/00changelog.i
adding a/a
% should fail
abort: path 'b/b' traverses symbolic link 'b'
% should succeed
% should still fail - maybe
abort: path 'b/b' traverses symbolic link 'b'