Cleanup visitor base class

* Add docs for uptional parameter
* Remove unneded abstract method
* Order visibility setup
Kill mutations in Visitor#{visit,visitor}