Introduce Q_DECL_CONST_FUNCTION and Q_DECL_PURE_FUNCTION

That expand to __attribute__((const)) and ((pure)). A "const" function
is a function allowed to examine only its arguments, without modifying
them. A "pure" function is also allowed to read memory.

Currently working only on GCC/ICC/Clang, MSVC lacks these.

Change-Id: Ie60a0847b193fb88e116f61611dc571296a3df1c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>