simplify for indexHead, indexTail of Const
add a type signature
get the length of a vector
shrink: fix the use count case for conditionals

This was spotted in the Black Scholes example, where we had:

  let c = ... in d >* 0 ? (1 - c, c)

Because it only considered the maximum on each branch rather than the combined uses, `c` was being inlined into each of the branches. Since the computation of `c` is quite expensive, this led to a significant number of additional instructions.
documentation updates
Determine if CChar is signed at compile time
rename HTYPE_CHAR to HTYPE_CCHAR and export
Merge branch 'refs/heads/tkonolige-master'
fixes for 'scatter', plus 'gather' wibbles

This did not check that the index mapping and input vectors were the same length. Fix this by taking the intersection of those.

Fixes AccelerateHS/accelerate#185
update headers
Allow (||*) and (&&*) to short-circuit

AccelerateHS/accelerate#187
rewrite the interpreter (1)

Do away with the old Delayed representation, which simplifies the implementation of each operation. This first step does not yet use the trafo optimisation infrastructure.
rewrite the interpreter (2)

add support for producer/producer fusion
rewrite the interpreter (3)

Now includes support for producer/consumer fusion. The core array evaluation loop has been specialised to DelayedOpenAcc, but in exchange the primitive operations can explicitly declare whether they expect a delayed/manifest array form, _without_ requiring a sum data type to represent these arrays.
improve 'init'
Merge updates from the main repository

Conflicts:
	Data/Array/Accelerate/Interpreter.hs