Changed program architecture to MachineController, MachineContainer, and MachineComponent.

The new classes will help split the work that states perform now into finer grain groups.
You can have a structure like this now:

FiniteStateMachine		- MachineController
	AttackState		- MachineContainer
		Target		- MachineComponent
		MoveToUnit	- MachineComponent
		WeaponSkill	- MachineComponent
		UseAbilities	- MachineComponent

	Resting			- MachineComponent

	TargetInvalid		- MachineComponent

AttackState is kind of like a sequence of Finite State Machine states.
Added stuff for behavior trees.
Added stuff for behavior trees
Revert "Added stuff for behavior trees"

This reverts commit e9d8d6b1f818a77c4999ba07030ca6fd9c9f450c.
Revert "Added stuff for behavior trees."

This reverts commit c31b3f6e864853efe2f61bc510ba09021e98304c.
Merge branch 'ChangeToNewFSMApproach'