Rework LazyLoad comet.

We move the AsyncRenderComet to its own file. We also
move the actual render function management into the
AsyncRenderComet companion, including handling deferred
function building.

LazyLoad slims down a little, dealing with invoking the
async render setup in AsyncRenderComet and rendering
the placeholder.

We also only apply a div wrapper to the default loading
template, letting a custom template stand on its own, though
we apply an id to it for the purposes of replacing it with the
rendered contents after they are sent down.
Add buildDeferredFunction for (A)=>T.

LiftSession’s buildDeferredFunction only existed for a no-arg
function. We now have a version that builds a deferred
function of one argument; invoking that function with an
argument will restore the session/request context and then
execute the original function with the passed argument.

Also simplified our restoration of context in both versions of
buildDeferredFunction.
Add first pass future CanBinds to the http package.

Also clean up some old commented-out package object cruft.
Add failure messages to findOrCreateComet.

If we fail to find the session, we now report as much in the
Failure message.
Unify logic for Future and LAFuture CanBinds.

Still not as clean as I’d like, but getting there.
Move resolution to a CanResolveAsync type class.

Now anyone can provide a CanResolveAsync implicit to
deal with other future types (for example, Finagle’s Twitter
Futures) and the CanBind will automatically apply.
Add AsyncRenderComet.asyncRenderDeferred.

This is for doing an asyncRender when the function has already been wrapped
with whatever deferred wrapperisms you may want, maybe including
buildDeferredFunction.
Enrich LazyLoad snippet with some render tweaks.

There is now an overload that takes a renderer function to which we hand the
placeholder id that we generate, and which is charged in turn with doing the
final rendering. It expectes the caller to wrap the passed function in whatever
deferred handling may be needed.

The main render method also now has an optional placeholderTemplate parameter
so that when invoked from Scala it can be given a NodeSeq to use for the
placeholder.
Make LazyLoad.render wrap passed functions in deferred contexts.

Initially, the LazyLoad.render overload that took a (String)=>JsCmd
explicitly didn't wrap buildDeferredFunction around the function, but
after thinking about it a little more, not needing buildDeferredFunction
is low-level and rare enough that we'll leave it so using that requires
using AsyncRenderComet.asyncRenderDeferred instead.
Merge pull request #1607 from lift/lazy-susan

Lazy Susan: Implement lazy-load and future CanBind support in AJAX responses