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.
Inlining of imported functions (experimental)
Never define naked functions or classes of imported modules.
Expand user attribute tuple before iterating over it.
Read ldc attributes in FuncDecl::semantic and

store them in FuncDecl::ldcAttributes. Check for presence of
alwaysinline and run extra semantic passes on any module that
contains alwaysinline functions.
When inlining is disabled, only define imported functions if they are alwaysinline.
Define alwaysinline functions at the end of

DtoDeclareFunction even if they are not externallyAvailable.
This way, those functions are inlined even if they are
defined in a module that we are not currently generating code
for, but was also given on the command line,
and the -singleobj flag was not used. Also made alwaysInline
functions have private linkage, so that they don't appear in
the object file. This avoids linker errors in the case
described above.
Made function literal names, anonymous class names

and critical section names independent of the order
in which modules are compiled and templates
are instantiated. Also removed isAutoGeneratedField
from Identifier and made availableExternally symbols
always have available_externally linkage.