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