Use Futures instead of callbacks. Also reverted changes to BlockGenerator.scala. Java Unit tests to follow.