Automagically find states and viewmodels, attack state refactorization, and logging implemented.

New code has been introduced to automatically find and construct view model and state objects.
In addition, the attack class has now had its code completely factored out into many different states.
Logging code has now been introduced and you can see what you are currently target.
Mixing components with states and will later refactor new states into components