Bug 893242 - Part 0: Don't crash if we call ContentParent::Pid() after the process is dead. r=bent

--HG--
extra : transplant_source : %F7Vm%A9c%3A%C8%40%80%F8%27%EF%40%F14%7F%0E%F2%F8%1D
Bug 893242 - Part 1: Add Unsound_IsClosed() and Unsound_NumQueuedMessages() to AsyncChannel. r=bent

--HG--
extra : transplant_source : W%F1%24%E4%DF%9A%29%BE.w%A6m5%D0%98E%9A%F0U%9D
Bug 893242 - Part 2: Make sContentParents a StaticAutoPtr. r=khuey

This eliminates a static constructor, which is good.  It also avoids a
problem at shutdown: If we leak a ContentParent and we destroy
sContentParents atexit, then sContentParents will assert that it's not
empty and cause test failures.

--HG--
extra : transplant_source : %FB4w%DE%11%BC%B1%D6%AB%B7%E9%8A%85%0A%0C%EF%EC%8D%FF%E2
Bug 893242 - Part 3: 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.

--HG--
extra : transplant_source : %87%F8%05V%B7%1A%3D%A0%8C%DF%12%96%1Dp%7F%0D%AF%0D%26a
Bug 893242 - Part 4: Add a memory reporter counting ContentParents and the number of IPC messages they have outstanding. r=njn, a=leo+