AIM: add wrappers for __attribute__

We use all of these attributes and they're usually accompanied by "#ifdef
__GNUC__". Adding wrappers to AIM makes using them less painful.
Merge into master from pull request #25:
AIM: add wrappers for __attribute__ (https://github.com/floodlight/infra/pull/25)
AIM: squelch unused variable warnings from ASSERT

We occasionally need to define variables solely for the purpose of asserting on
them. These assertions are compiled out on release builds, so the compiler will
warn that these variables are unused.

Using AIM_REFERENCE in the release assert macro mostly solves the problem, but
there's a chance that the assertion is actually a function call that the
compiler might not be able to optimize away. Using sizeof ensures the compiler
won't generate any code on a release build.
Merge into master from pull request #26:
AIM: squelch unused variable warnings from ASSERT (https://github.com/floodlight/infra/pull/26)
Introduce the DEPENDMODULE_HEADERS variable.

Modules that require the public headers of another module in order to compile
but don't want to compile that module itself can now add those modules to
the DEPENDMODULE_HEADERS variable.

The current version is not entirely correct as it grabs the $(mod)/module/inc
directory directly when it should probably honor the $(mod)_INCLUDES variable
exported by the module's own makefiles. That setting would have to be
teased out of the makefile structure first.
Merge into master from pull request #27:
Introduce the DEPENDMODULE_HEADERS variable. (https://github.com/floodlight/infra/pull/27)