Refactor common RPC test code to BitcoinTestFramework base class

Inspired by #3956, with a little more flexibility built in.

I didn't touch rpcbind_test.py, because it only runs on Linux.
Print better errors, and add util stop_node() function.
Merge pull request #4485 from gavinandresen/refactor_python_tests

Refactor common RPC test code to BitcoinTestFramework base class