Redesign of message framing, and major refactor of log_load_msg

Finally eliminated code duplication between the various read methods.

There are new ccl_msg_header and ccl_msg_footer structs that hold the
results of parsing and can easily be passed to the functions that need
these values, separating loading from parsing from analysis.

Planned out the scan and binary-search functions.