Clean up and organize tests + state class tests

I removed the complete create/call functionality of the FakeExtVM leaving it to minimum functionality, creating a "callcreate" in the test. Tests needing those functions should be written as state tests (new feature).
I created a lot of helper functions in order to reuse code.

I don't think friend is necessary for theses tests. I have some ideas on how to approach this.

What are the main three-ish challenges w/using Ethereum Client/State/Transaction/etc classes, as-is?