Added "Subscribe" and "Suback" frames + refactoring

The refactoring of class "Protocol" is to avoid the pattern matching
exhaustiveness warning.