Bug 893172 - Call ShutDownProcess in ContentParent::ActorDestroy. r=bent

If we don't do this, a ContentParent's channel stays open after its
process is SIGKIL'ed.  This causes us to continue to send it broadcast
messages.  These messages build up arbitrarily and manifest as leaks
under a variety of endurance-test scenarios.
Bug 893242 - Part 0: Don't crash if we call ContentParent::Pid() after the process is dead. r=bent
Bug 893242 - Part 1: Add Unsound_IsClosed() and Unsound_NumQueuedMessages() to AsyncChannel. r=bent
Bug 893242 - Part 2: Add ContentParent::GetAllEvenIfDead(). r=bent

To do this, we got rid of the explicit removal of a ContentParent from
sContentParents in MarkAsDead().  Instead, we rely on
LinkedListElement's destructor to remove the ContentParent from
sContentParents.

Thus, a ContentParent stays in sContentParents until it's destructed.
ContentParent::GetAll() checks whether the ContentParent is still alive,
so its behavior is unchanged.
Bug 893242 - Part 3: Add a memory reporter counting ContentParents and the number of IPC messages they have outstanding. r=njn
Bug 893012 - Part 1: Don't leak BrowserElementParent due to an event listener on the window which contains it.
Bug 893012 - Change nsFrameLoader::mChildHost from nsCOMPtr<nsIObserver> to nsRefPtr<ContentParent>.

This doesn't change any behavior; the only effect of this change is to make it easier to figure out, from GDB, which ContentParent a nsFrameLoader points to.