Add cuda compute capabilities 3.0, 3.5, 5.0

Untested.
Update in response to discussion. Still untested and unsuitable for merge.
Merge branch 'master' into cuda_30_35_50
Output cuda device attrs when in debug mode
Turn simplify_exprs back into simplify-except-for-lets

fixes cuda test failure
Emit the correct PTX ISA
cuda compute capability 5 uses libdevice 2.0
Fix missing ampersand
Add device attribute enum to mini_cuda and use it
Error on ptx isa 4.0 for llvm < 3.5
Merge pull request #375 from halide/cuda_30_35_50

Add cuda compute capabilities 3.0, 3.5, 5.0
Workaround for broken llvm trunk section iterator
Merge branch 'master' into compute_cached
Add memoization files to CMakeLists.txt.
Fix a bug with C code gen of code using memoize_expr where compilation
would incorrectly assert if multiple exprs were added to the cache tag.
So dead code and typo cleanups. Change to using "Bool()" consitently
for boolean type.
Change file and internal function naming to reflect change from
"cache" to "memoize".
Remove unecessary check for produce and consume parts of a Pipeline
being defined.
Fix cache implementation to handle storing buffers which represent a scalar.

Use memcpy and memcmp.