Now uses Python's deep copy to copy Pokemon
Removed unused action factory
Cleaned up action lcok useAction Tests
Added test to ensure doing an attack action usese the attack
Removed unneeded mock class
Attack Action tests are actually being run now
Updated tests for the battle action
Fixed Battle Action tests
Added Switch Action Tests
Tidied up the After Turn Effect Interface
Added test of Using an Attack
Added test of the Attack do Attack function
Added tests for the doAttackLoop Attack function
Added tests of Attack checkPreconditions logic
Added Precondition Attack Step Class
Switching to a fainted Pokemon is now disabled in GUI land
Switching to a fainted Pokemon is now disabled in the Console View
Merge branch 'master' into cleanup
Tidied up the Precondition step so it reports whether or not it passed
Added the hit step