It is much more compact to re-implement the transition states as a table
as opposed to functions with switch/case statements. The logic is made
much easier to follow and much of the code duplication is eliminated
change ppp_decode to store the length of the decoded frame, so that
if we have a packet with a protocol we don't understand, we can send
Protocol-Reject packets. Modify ppp_cp code to add support for sending
Protocol-Reject packet.
Prevent conflicts between config timer information and terminate timer
information by providing a new data structure which keeps timer information
for config and terminate requests separate.