Customize directory stack

Automatically push directories onto stack, ignore duplicates, and
use negative lookup