Utility: moved TypeTraits.cpp static assertions to tests.

It's not desirable to compile whole file just to check for two things
(which won't break too often).
Utility: brand new CORRADE_HAS_TYPE() macro.

Superseeds previous unprefixed HasType() macro, has proper documentation
and can be used for much more things.
Utility: test that IsIterable works for more container types.

It doesn't, as many containers we don't provide `const_iterator`
typedef or don't have begin()/end() members.
Utility: make IsIterable type trait more general.

It now works for all types with either begin()/end() members or usable
with std::begin()/std::end(). Hooray for printing Containers::Array and
std::valarray with Debug. The tests now pass again.
Utility: doc++
Utility: fix build with GCC 4.6.

It parsed the operator<<() type as the following and then failed on
"sorry, unimplemented: mangling constructor". WAT.

    std::enable_if<({} && (!{})), Corrade::Utility::Debug>::type
Utility: fix build with libc++.

It needs the almost-f'in-unbearably-huge <iterator> header.
Utility: don't use deprecated API in NaClStreamBuffer.
Utility: make compiled resource files usable with compatibility branch.

For e.g. x86 NaCl you will probably use native `corrade-rc` from Corrade
master to compile resource files. The NaCl toolchain is GCC 4.4 which
doesn't know about nullptr yet, thus `compatibility` branch with
`corradeCompatibility.h` header needs to be used.

Cherry-picked from 42a15cd718bbb162a2fee066edf4c0748bde477d and
partially also from e3e7a79229bfe71176e755e04378f8972384b43b (both in
compatibility branch).
Link `dl` on Unix, but not on NaCl newlib.

Partially reverts (undocumented) change done in
d1f87db6577003ed2b893e2891ab169e2ea3abbc. NaCl is understood as unix, so
simple `UNIX OR CORRADE_TARGET_NACL_GLIBC` won't work, as it will match
`CORRADE_TARGET_NACL_NEWLIB` also.