Update submodules io, examples, cuda, backend-kit
lift instance for C types
expand docs for lift and unlift
Added support for a limited subset of NDP to the language and the interpreter

- Needs further testing
- Does not yet perform any vectorisation
Added Elet constructor and cleaned up sharing recovery

- The simplifier has been turned off as it currently raises an exception when applied to open expressions. This will be resolved when vectorisation is implemented
- Fusion also does not properly support the 'Elet' construction. This could be fixed but as fusion would naturally occur after vectorisation, there is little point in doing so.
Merge branch 'limited_ndp' of https://github.com/AccelerateHS/accelerate into limited_ndp