Use zoomin instead of `cd` for go_mark.

This is more general, and handles the desired behavior of allowing
subdir zoomin behavior for go_mark. It also fixes the issue with
directory history that `cd` followed by `zoomin` caused due to the two
`cd` calls.

To implement this correctly, zoomin() needed to be updated to support
initial directories that begin with a leading slash. A "/" literal
resets the path to root. A token beginning with "/" uses that directory
as the base.
Added binary search algorithm implementation and unit tests
Update vim modules and vicious