Improved message when selecting an occupied location.
Extracted State literal creation to StateLiteral.create to reuse it in the tests

(cherry picked from commit cac42779f935f6c13225475948214f503d14e510)

Conflicts:
	test/com/github/demonh3x/tictactoe/StateTest.java
Inlined StateLiteral.create
Removed unnecessary variables in StateTest
Initial test for HardestInteractor
Improved test name
Refactored HardestInteractor to express intent better
Extracted MethodObject because of the state context
Added test to add the concept of a winning play
Added test to uncover bug
Generalised method
Added initial test for DesirabilityEvaluator of a State
Added another test for DesirabilityEvaluator of a winningState
Improved state names in DesirabilityEvaluatorTest
Renamed DesirabilityEvaluator.evaluate(State) to Desirability.of(State) to improve meaning and readability
Added another test for Desirability of a losingState
Added another test for Desirability of an unfinished state
Changed Desirability.of(State) null return value by an UnknownDesirabilityException
Made an immutable variable final
Added Ponderator interface and made Desirability implement it to compose complex ponderation algorithms.