Block.js

Resolves https://github.com/bitcoinjs/bitcoinjs-lib/issues/279 .

The API right now is very simple, but provides the basic building blocks.
I'm not sure whether we should put merkle tree hashing in here or some where else.

Mostly this abstraction was created to be able to parse blocks, further functionality can be added when necessary?

@weilu thoughts?
Can we have `toBuffer()` and `headersToBuffer()` instead?