Capability for saving backtrace in functions

*Support backtrace in function header
*Dynamic closures with the function lambda form have a
 backtrace saved with them

Note that at the moment we never save a backtrace in a static closure
this may need to be changed in the future
Save and Restore cost centre stack for Let No Escape Binds
Save and restore cost centre stack for case analysis
Refactoring of Headers

In order to make dealing with headers which contain backtrace info easier, I needed to refactor closure headers a little.
There are now three types of headers

StgHeader

StgBacktraceHeader extends StgHeader by adding a backtrace feild

StgThunkHeader extends StgBacktraceHeader by adding the padding field

The most important changes happen in rts/includes/storage/Closures.h.
All the other changes are just modifications to make everything else work with the new header structs
Not a real commit. Remove later