bugfix for multidimensional permute

fixes: AccelerateHS/accelerate#93
name change from base library
debug messages for context push/pop/destroy
debug message wibbles
add finaliser to unload kernel modules
module finaliser must access the context via a weak pointer
execute 'evalCUDA' in a bound thread

- Explicitly run this in a bound thread, rather than using 'forkOS' in the Async module. Critically, this runs the setup and teardown code in the same bound thread as the body expression.

- Move the exception handler to also catch exceptions from the setup/teardown code.
update for generalised AST.Apply
version bump

Addressing issues:
  - AccelerateHS/accelerate#93
  - AccelerateHS/accelerate#95
  - improvements for AccelerateHS/accelerate#92