Summer Behaviors Overhaul

PART I
Shared ball module:
- Does a weighted average of robots currently seeing the ball.
- The closer a robot is too the ball the more heavily its estimate is weighted.
- The more certain a robot is about its position the more heavily its estimate is weighted.

@mmmaher has a branch in the works to improve the shared ball module! It weights the goalie more heavily than the field players, only averages ball estimates together if they agree at least a little bit, and does symmetric flips to check for flipped robots. It also stops using localization certainty because EJ doesn't trust it at all!

PART II
Off ball behaviour (yay, @nmorin):
- Includes a super state for off ball play to better organize the player FSA.
- Includes a position as supporter behavior for use when robots are called off.
 - Chaser no longer has a home position. He searches the field instead.
 - The search behaviour uses shared ball if on, otherwise searches field by quadrant.
 - Abstracts role system in RoleConstants.

PART III
Motion kicking (yay, @dnav6987):
- Adds three sick motion kicks!
- Kick decider uses a no orbit strategy to kick quickly when far from goal.
- After motion kick spinning is improved.

PART IV
Find ball improvements (yay, @dnav6987):
- We spin to the ball when it rolls by us. Head tracker is set to look to the side the ball was last.
- We have a find ball strategy for scrums. We sidestep and pan waiting for the ball to reappear.
- We have a find ball strategy for when it disappears a ways in front of us. We move to where the ball model says the ball was last.