System.CompomentModel.Component.cs: Make disposedEvent key static

There is no need for an instance of Component to create its own lookup key for the Disposed event. Use a shared static key instead.
Merge pull request #803 from Wolpertinger/patch-1

System.CompomentModel.Component.cs: Make disposedEvent key static
[jit] Add a simple loop invariant loop motion pass for use with LLVM, which moves loop invariant instructions out of loop headers into the preceeding bblock.
[llvm] Mark the load generated by OP_AOTCONST as invariant.
Do not justify the text
[llvm] Rename the MONO_INST_CONSTANT_LOAD flag to MONO_INST_INVARIANT_LOAD for consistency with LLVM.
[llvm] Update list of optimizations passed to 'opt'.
[llvm] Use i64*/i32* as the LLVM type of objrefs instead of i64/i32, the basicaa LLVM pass cannot see through the inttoptr casts we were emitting before loads.
[aot] Avoid emitting a 'methods' symbol using .set methods, clang's integrated assembler doesn't seem to support it.
[aot] Use clang as the assembler on osx.
[llvm] Add the strip-dead-prototypes pass to remove unused intrinsics definitions from the .bc file.
[aot] Use temp.bc/temp.opt.bc instead of temp.s.bc/temp.s.opt.bc as llvm temporary file names.
[aot] Clean up the linker invocation code a bit.
[aot] Remove -mattr=-avx flag to llc on amd64+osx, its no longer needed.
fixed stackoverflow exception in Attribute.GetHashCode()

MS implementation of Attribute.GetHashCode does not depend on TypeId property, so you can return any value in TypeId and hashcode in MS.NET will be the same.
Merge pull request #804 from xplicit/attrfix

Fixed StackOverflow exception in Attribute.GetHashCode()