implement ServiceTicket storage and retrieval

This was done separate from the previous two ticket storage
implementations because it is more complex due to the relationship
that exists between TicketGrantingTickets and ServiceTickets. This
should be a workable approach to the problem both from a generic API
standpoint for all adapters and from the actual implementation of the
InMemory adapter.

As a side note the InMemory adapter can probably be used as a template
for a redis based adapter.

Signed-off-by: Tyler Pickett <t.pickett66@gmail.com>
Document abstract Adapter class and InMemory implementation class

Signed-off-by: Tyler Pickett <t.pickett66@gmail.com>