created a test that enters random open positions and verifies that the ai always wins or ties; adjusted scoring logic to satisfy losses identified in the random test; #15
refactor: extract common opponent mark lookup into a shared utility class
refactor: extract common position analysis into a shared utility class
refactor: extracted even and odd Position analysis into common utility
refactor: extracted even and odd counting; renamed utility to better represent it's expanding purpose
reafactor extracted more methods to utility classes