1. Changed autonomous() to autonomousInit() so that it actually does
something.
2. Split Vision into three classes for code legibility purposes
3. Some other minor changes