cleaning up a few things:
rename PathContext->ResolveContext.
Path, PathElement, Resolvable: give each resolve function() a unique name for stack traces
Resolvable: wrap non-promise results as a $q.when() promise.