allow authorization without protocol defined

Protocol is only required for certain subset of services, mainly for ppp. We
allow authorization with empty protocol if user wants to use other service
names, like 'ssh'

From the http://tools.ietf.org/html/draft-grant-tacacs-02 page 30:

    The protocol attribute is intended for use with PPP. When service equals
    "ppp" and protocol equals "lcp", the message describes the PPP link
    layer service. For other values of protocol, this describes a PPP NCP
    (network layer service). A single PPP session can support multiple NCPs