Bug 672843 part A - Create the new macro NS_WARN_IF and deprecate NS_ENSURE_* in favor of the explicit warning/return style. Also localize each macro so that it's debug and non-debug versions are local in the file, because that makes it easier for new contributors to understand. r=froydnj sr=jst
Bug 672843 part B - Remove NS_ENSURE_PROPER_AGGREGATION, r=froydnj
Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric
Bug 672843 part D - make NS_ERROR_INVALID_POINTER an alias of NS_ERROR_INVALID_ARG, r=froydnj
Bug 672843 part D2 - Fix the xpconnect exception code and Components.results to prefer the name NS_ERROR_ILLEGAL_VALUE over the other synonyms. Fix a few tests that rely on exception names to use exception values instead. r=bholley