Make bitcast, extractelement, and insertelement considered cheap for speculation.

This helps more branches into selects. On R600,
vectors are cheap and anything that helps
remove branches is very good.

I don't know why this isn't using the TTI for this cost
calculation.
Add memfence attribute handling to attributes and parser.
Add MemFence intrinsic property
Make intrinsic property take a list, actually work.
Add testcase for GVN moving loads across barrier
Respect memfence attribute that fixes original testcase
Add a case which should transform since different address
space is fenced.
Invert memfence to be nomemfence
Finish inverting to nomemfence
Add assertion for weird function
Add nomemfence infer tests
Start adding nomemfence inferring
Replace nomemfence_begin everywhere with getUnfencedAddrSpaces