Add a prototypical API for S.addComet.

Compilation: negatory.
Move CometCreationInfo to CometActor.scala.

It was hanging out in Templates.scala for some reason,
where it had no relation to its containing file nor was it used
therein.
initCometActor now takes a CometCreationInfo.

This propagates through callInitCometActor and most
callers thereof. We leave most of LiftSession alone because
comet stuff there is about to get rewritten.

CometCreationInfo’s attributes also change names, to
more descriptive ones.
Add CometId case class.

CometId describes a comet uniquely in the session, and
consists of the comet type and the (possibly Empty) comet
name. The cometSetup SessionVar and nasyncComponents
ConcurrentHashMap both use CometId for indexing.

Not all places that interact with these have been updated,
as there are chunks of LiftSession that are about to get
extensively rewritten; as such, this doesn’t currently
compile.
Significantly reorganize comet find/setup stuff.

Things are split up a little more granularly. We also have a
more uniform and descriptive API (findComet only finds
existing comets, while findOrBuildComet is used to build a
comet if it wasn’t found). The API is still internal to Lift’s
packages.

This still doesn’t quite compile, as it breaks the Comet
snippet.
Expose comet finding/creation in S.

We now have S.findOrCreateComet in two forms, with a
type parameter and with a String cometType. We also use
this to make the Comet snippet work again.

Note that the Comet snippet used to support comets with no
types, but that is no longer acceptable.
Strip callInitCometActor overload.

This was the old non-CometCreationInfo overload for
callInitCometActor, which is no longer used.