Converted Block to an ABC, and relevant cleanup.

Now that Block is an ABC, we can define a method on Blocks that
produces an Action from a Block. Some minor cleanup is included.