Don't blow up if the route doesn't have $$route defined.

In particular, this happens in the 'otherwise' case.
Allow the app to change the $location path while rendering.

This gets handled as a HTTP redirect. In the present implementation this
is a bit wasteful because it will still completely render the page even
though the body isn't actually returned.
Always fire the "no open requests" callback asynchronously.

If it's fired synchronously then sometimes it fires in the middle of a
digest cycle and causes the response to be emitted in that context,
preventing us from completing the digest cycle before we return.
Add an example simple AMD loader.

This is useful for dealing with applications that use RequireJS for
dependency management. Just the bare minimum necessary to deal with
apps that have been through the r.js optimizer so that no async work
is needed to initialize stuff.
Allow the response to be more than one element.

Previously we'd grab the "outerHTML" of the first member of the response
element (which is really an array of DOM elements), but that fails if
there's more than one, which can can be the case if the template has
whitespace or comments before the 'html' element.

Instead we put all of the elements into a common container and then
serialize its contents, thus resulting in a complete rendering of the
document.
Make it a fatal error to access location before it's ready.

In practice there's little reason why this should ever happen since we
initialize the location before instantiating anything. However, it can
arise if a module requests $location during its initialization, either
through module.config or module.run. This causes it to be instantiated
during the call to angular.injector, before we've had a chance to set
the request context.

At the moment this just requires modifying the application to not depend
on the location during initialization.
Provide an interface to detect if we're running on a server.

Callers can use $location.runningOnServer, which will be true if we're
running on the server and untrue if not.
Add simpleapp example.

At the moment this is less an example and more a test case, but it serves
as stand-in for documentation for now.