Add missing forward declations to gen/utils.h
Small cleanup of attribute mess.
Add UDAs for LDC attributes.

Introduces an attribute @ldc.attribute which can be used to annotate functions.
Examples:
@ldc.attribute("alwaysinline") void foo() {}

Valid attribute names can be found in the LLVM manual at
http://www.llvm.org/docs/LangRef.html#function-attributes.

This fixes issue #561 and creates a base for issue #547.