Bug 921563 - part 1 - declare return types in IPDL C++ with C++0x late return syntax; r=gps

Every IPDL C++ class contains a bunch of typedefs.

Every IPDL C++ source file contains a bunch of typedefs and using statements
for the exact same types.

Why is that?

Because the class itself is not in scope for name lookup of return types of C++
methods.  This limitation is annoying, but it makes sense.  The typedefs and
using statements therefore exist so we can be a little sloppy about return
types.

Let's stop being sloppy and polluting the global namespace inside these
files.  Less pollution makes it easier to smash the IPDL files together for
unified compilation.  One could do this by qualifying all necessary return
types...or we could just use the C++0x late return syntax, which guarantees the
class *is* in scope for name lookup.  I like this version a lot better.
Bug 921563 - part 2 - delete typedefs and using statements from global scope in IPDL C++ files; r=gps
Bug 921563 - part 3 - simplify test_ipdl_sources; r=gps
Bug 921563 - part 4 - compile ipc/ipdl/ in "unity" mode; r=gps
Bug 922632 - use Services.jsm more in ContactManager.js; r=smaug
Bug 922633 - use Services.jsm more in PermissionPromptHelper.jsm; r=smaug
Bug 921751 Make Preprocessor.py's -o option honour requested newline type r=ted
Bug 880159 - word offsets for caret when at end of line should not return offsets for next line, r=tbsaunde
Bug 916321: Assert that Debugger.Object.prototype.unsafeDereference outerizes inner objects. r=jorendorff
Backed out changeset 1fb456791435 (bug 921751) for check-sync-dirs failures.
CLOSED TREE
Bug 915940. Memory reporter for memory image surfaces. r=njn,mattwoodrow