Abstract ChainBuilder and rename LocalChainEnvironment -> LocalChainBuilder

The ChainBuilder represents the full implementation of a blockchain
containing all operations (such as adding blocks) and state (such as
full contracts with their receive functions). Such a value is
convertible to a Chain (but not vice versa). This is where we will state
general properties about how the block chain behaves temporally.
3 jobs for master in 3 minutes and 33 seconds