Move padding to the frame header.

This is a proof-of-concept to see what the spec would look like if Padding was defined as part of the common frame format instead of on each frame type.

Pros:
 - It simplifies the frame validation (padding flags and length checks no longer depend on the frame type).
 - It reduces the duplication in the spec.

Cons:
 - It is a little more cumbersome to explain the length field as being the length of  payload + padding + optional pad high / pad low.
 - It requires adding text to some frame types to prohibit padding.

Changes:
 - In most ways this is purely editorial, but of note is that the padding flags are now defined on all frame types. For example: previous receiving a PING frame with the PAD_HIGH bit set and the PAD_LOW bit cleared was completely valid and required to be processed, with this change, receiving a PING frame with either the H bit or L bit set must be treated as a connection error.

Thoughts and feedback welcome :)