Create .gitignore
Create visitor.h
Create visitor_test.cpp
Update visitor.h

Fixed tabs in visitor.h.
Update visitor_test.cpp

Fixed tab indentation in visitor_test.cpp
Update visitor_test.cpp

Made visit() function for Client2 in AllClientsVisitor final.
Update visitor_test.cpp

Added and implemented the class ConstAllClientsVisitor.
Changed some formatting.
Removed testing code.
Added generic implementations for visitors.
Reorganized and generalized the idea of generic visitors.

Visitors can now be created through the factory function makeImpl.
Added tags for acyclic visitors.
Removed tags from acyclic visitors.
Added generic cloning and generic streaming.
Removed unused header files.
Merge branch 'visitor_branch'

Conflicts:
	.gitignore