seperated duplicate variable declaration visitor

took the code out of type check visitor and made a new visitor for
duplicate var checking.
Move num local vars visitor private methods to after public declarations