feat (visual.py): Add menu and rubberband selector
refac (ALL): rename Visual to Builder, improve parameter passing, introduce model