Proof of Work refactoring and multi-core support.

I moved the basic proof of work loop into it's own file, where I could mess with it easier (instead of having the same code appear a half dozen times in bitmessagemain.py).

I then modified it to attempt to detect your # of cores and launch one child process per core. It checks once per second to see if a solution has been found, and kills any remaining child processes once this has happened. I have no idea how to properly do multiprocessing in python, but this does seem to work.

Aside from faster hashing, the UI seems to be more responsive when PoW isn't in the same process.

Only tested on (X)ubuntu 12.04, YMMV.