frame: Refactor to make use of github.com/eaburns/bit and hash readers.
frame: Use ReadFields instead of bit masks in header.go.
frame: Add some comments and panic on unreachable branches.