Fix bit patterns for minval_f32 and minval_f64.

Fixes #298
Fix an issue where functions that take a user context get incorrect
argument casting due to a mismatch in indexing the llvm argument type
list.
Bugfix for sharing a self-reference across multiple reduction definitions.

Solved by making a unique copy of each self-reference for each definition.
Replace extract_buffer_extent intrinsic with extract_buffer_max

This gives simpler bounds logic in the presence of extern stages.
Merge branch 'master' of github.com:halide/Halide
Fixed casts to and from handles.

The only legal one is a reinterpret to a uint64 (even on 32-bit platforms).

Fixes #302
Fix weirdness with inserting allocas into an empty basic block.
Slightly better error message for when you try to enable tracing on the GPU

In the future it is possible to make this work.
count_leading_zeros of 0 is now the bit-width

was previously undefined
(1 << 31 - 1) != ((1 << 31) - 1)

The IR is simpler if we just use an int constant though.
Forbid schedules that separate store_at and compute_at over a parallel loop

Fixes #296
Casting a 32-bit pointer to a uint64_t sign-extends!

Fixed by casting via uintptr_t
Handle print and print_when in bounds.

via handling return_second and if_then_else intrinsics

Fixes #308
Merge branch 'master' into specialize

Conflicts:
	src/Lower.cpp