Fix various bugs setting/unsetting flags in operations.

Probably should have read the docs more diligently when I first ran through them. Whenever a condition is not met for a flag set it MUST be unset (otherwise how could you know what state things are?). 

Anyhow, this seems to have fixed most (all?) of the issues.
Log formatting fixes.
Fix indirect and indirect indexed addressing modes and tests.
Implement the nestest required unofficial opcodes
Automate testing with nestest