Bug 1057224 - Pass actual class name for rdf ctor counting. r=froydnj

We want to enforce valid names in these macros, so we need
to use a valid type name here.
Bug 1057224 - Assert that MOZ_COUNT_* are passed a class name. r=ehsan

This helps detect typos, which lead to undetected or spurious
leaks in the leak check.
Bug 1057224 - Disable MOZ_ASSERT_CLASSNAME on gcc < 4.7. r=ehsan

The new MOZ_ASSERT_CLASSNAME check in MOZ_COUNT_CTOR and friends
fails under gcc 4.4 on the B2G ICS emulator build, because
nsGonkCameraControl calls the COUNT macros from a local class.

This wasn't allowed in C++03, but that was changed in C++11, and
our more recent toolchains either don't reject the code or don't
encounter such a nested class name.

I picked gcc 4.7 as the minimum version because that's the version
used by the B2G JB Emulator build, which works. There's no restriction
on clang or msvc version.