Bug 835503 - Remove nsCycleCollector::ShouldBeFreed/WasFreed, r=mccr8
Merge the last PGO-green inbound changeset to m-c.
Merge m-c to inbound.
Bug 761552 - Part 1: Provide UTF8ToUnicode functions accepting a buffer. r=jlebar

UTF8ToUnicode does not let the caller specify the buffer to use, but allocates
the buffer on it's own. Hence the caller cannot choose which allocator to use.
Rectify this by providing new APIs.

1. Split UTF8ToNewUnicode into:
   - CalcUTF8ToUnicodeLength
   - UTF8ToUnicodeBuffer
2. Rebuild UTF8ToNewUnicode using the new functions
Bug 761552 - Part 2: Avoid external JS strings in XPCConvert. r=bholley

XPCConvert needs to convert some string types to JS strings in order to call
from C++ into JS land. Make those converted JS strings allocate the buffers
from the JS compartment memory pool, instead of making them external and
allocated from the main heap.
This improves memory reporting and may also influence memory fragmentation
and/or performance.
Bug 828201 - Replace DEBUG constant by a preference across OS.File and add a File.GET_DEBUG method used for testing. r=dteller
Bug 828347 - Warn if session restore is initialized with deprecated synchronous initialization. r=dteller