Added support for targeted knowledge, so that agents may communicate only with each other.

Also added the first class using TargetedKnowledge, which is used for repairers communicating their location to the repairee.
KnowledgeManager no longer saves TargetedKnowledge to the knowledge base.

Added HeuristicKnowledge to help share heuristic between agents.
Parsers for HeuristicKnowledge and RepairerLocationKnowledge added
renamed RepairerLocationKnowledge to MessageKnowledge and generalized it to be used for all kind of messages without the need for more parsers.

added F# parser for heuristic knowledge.
ignore this. just a test
Planning now times out A* search after 100 milliseconds (tweak this).
For multigoals, it will use the prefix of the map that satisfies the most requirements
Do something similar for pathfinding problems
Changed costs of actions to incorporate amount of turns needed.
A turn costs (max energy / 2), which is the energy we could have gained, had we recharged instead
As an example, Attack actions cost (max energy / 2) + 2, Recharge actions cost (max energy / 2)
Distance heuristics take this change into account
heuristic calculations are now distributed among all agents. Use the constant NUMBER_OF_AGENTS to change number of agents in sim.
Merge branch 'Release/MileStone3/feature/timeout' of https://github.com/srnjcbsn/Beduin into Release/MileStone3/debug
*added so heuristics that is already known is not sent twice
implemented intention equality by comparing of intention labels
Removed silly rngesus
Fixed distance heuristic to also calculate recharges required to get to the goal (optimistically)
updated fsplanning
fixed slight error in compareTo in the new knowledge types. The error resulted in sometimes for example HeuristicKnowledge wouldn't use the smallest dist as the Heuristic.
Changed goal type to incorporate allowed actions
Commented out a unit test, solution now builds
Goals now has information regarding which actions are allowed to reah the goal
Merge branch 'Release/MileStone3/feature/timeout' of https://github.com/srnjcbsn/Beduin into Release/MileStone3/debug

Conflicts:
	TeamNabf/NabfAgentLogic/AgentTypes.fs
	TeamNabf/NabfAgentLogic/Planning.fs
Merge branch 'Release/MileStone3/feature/timeout' into Release/MileStone3/debug

Conflicts:
	TeamNabf/NabfAgentLogic/AgentTypes.fs
	TeamNabf/NabfAgentLogic/Planning.fs