Add Serialize/Deserialize for BlockHeader.

This commit introduces two new functions for Blockheader named Serialize
and Deserialize.  The functions provide a stable mechanism for serializing
and deserializing block headers to and from disk.  The main benefit here
is deserialization of the header since typically only full blocks are
serialized to disk.  Then when a header is needed, only the header portion
of the block is read and deserialized.