Fix assertion error when building Phobos with debug builds.

Turns out that Expression::isConst() actually is much too
pessemistic as it e.g. never regards struct literals as
const.

We should get this fixed to avoid unnecessary heap
allocations for array initialization.
Merge pull request #503 from klickverbot/const-array

Fix assertion error when building Phobos with debug builds.
Implement pragma(lib) using module metadata.

Since LLVM 3.3 pragma(lib) can be implemented like DMD does.