Improve unit test coverage for neo.core, pep8 cleanups, and fix bugs

This was originally planned as an increase in unit test coverage for neo.core.  However, along the way I encountered a lot of small bugs and consistency issues that I fxed.  I also fixed any pep8 formatting issues I could find.

neo.core should now have close to 100% unit test coverage.  I wrote tests for everything I could figure out how to access.  I also expanded a lot of the existing tests to cover more corner cases.  

Also, outside of the io classes (which I didn't think were safe for me to touch), all of neo should now be pep8 compliant.