Bug 865729 - Remove nsIJSContextStack from content/foo. r=gabor

We leave it in nsContentUtils.cpp, which we'll handle in a separate patch.
Bug 865729 - Remove nsIJSContextStack from dom/foo. r=gabor
Bug 865729 - Remove nsIJSContextStack from xpconnect/loader. r=gabor
Bug 865729 - Remove nsIJSContextStack from other miscellaneous parts of gecko. r=gabor
Bug 865729 - Make nsIXPConnect inherit nsIThreadJSContextStack. r=gabor

Right now, the concrete nsXPConnect implements nsIXPConnect and
nsIThreadJSContextStack separately. I want to migrate the API from the latter
interface to the former, but I can't right now because it means we'd end up
with a duplicated method (getSafeJSContext). Since there's only one concrete
class that implements nsXPConnect, let's just use interface inheritance, which
simplifies the migration.
Bug 865729 - Make nsContentUtils munge the cx stack with sXPConnect directly. r=gabor
Bug 865729 - Use sXPConnect directly in caps. r=gabor

It's tempting to go through nsContentUtils here, but I'm pretty sure caps is
initialized before nsContentUtils.
Bug 865729 - Use XPConnect directly in C++ unit tests. r=gabor
Bug 865729 - Remove Push/Pop from public API. r=gabor
Bug 865729 - Remove Context stack iterators. r=gabor
Bug 865729 - Remove nsIJSContextStack. r=gabor

\o/