Shared ball module (currently off) and improved off ball behavior

PART I
Functional 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 pull request 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
Improves off ball behaviour:
- 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.