Implemented StateMachine Class

Implemented StateMachine Class that tracks what state we are in, how
long we have been in it, and if the timer has expired.
Moved overallState & driveState to use stateMachine.
Fix bug

Add else statement that prevents priority inversion.
Fix bug

Change int to unsigned long to prevent issues.
Add code to change direction if no ball is found

Add code to change direction if no ball is found for a set amount of
time.
Re-arrange priorities

Check for green mat before state expiring.
Applied backwardWallFollow to forward

Applied backwardWallFollow technique to forward direction.
Set thresholds

Set thresholds.
Fix typo.
Fix bug

Motor directions were reversed.
Enable ball colour sensing

Enable ball colour sensing.
Adjust thresholds.
Add option to auto reverse direction.
Created separate timers for forwards & backwards

Can now control the drive & rotation time for going forwards & backwards
individually.
Allow forward speeds to have offset to bend

Allow forward speeds to have offset to bend towards wall if desired.
Update thresholds & goal alignment

Update thresholds & goal alignment strategy.
When rotating, move - stop - move - stop to align.
Make goalBackoff iterate process

Make goalBackoff iterate process so that it move - stop - move - stop.
Fix bug in StateMachine

Make time an unsigned long.
Improve thresholds.