protocol_helper.hpp:  Pass the byte offset instead of the field offset into field_value

* This makes the template instantiation of field_value bounded because
  the number of values for byte offset values are between 0 and (bits
  per byte - 1).
Rearrange field_value template arguments to provision for some specializations
protocol_helper.hpp:  Remove an unnecessary class declaration
More comment updates