Optimization for LiftSession.findSnippetClass

snippet name to class map will be cached on the LiftSession object to
avoid duplicate searches. This is to a avoid a performance problem where
the searches become expensive as many snippet packages are added and the
number of classes loaded is very large.
Merge pull request #1434 from hoffrocket/jon-liftsession

Optimization for LiftSession.findSnippetClass