Add TracepointTick to Core Syntax

* Add TracepointTick to Core Syntax
* Add code for printing TracepointTick for -ddump-prep etc
* Add cases for TracepointTick for tickishCounts and tickishScoped.
      both are False at present to let the simplifier do as much
      simplifying as it can. We'll come back and change this if it turns
      out to be a problem.
Automatically add Tracepoints during DeSugaring

* -backtrace causes addTicksToBinds to be called during the DeSugar process
* -backtrace causes addTicksToBinds to create CoreSyn annotated with
   TracepointTicks on all functions. (Exactly the places that -fprof-auto
   annotates with cost centres)
Added StgTracepoint to Stg syntax

* Added StgTracepoint to Stg syntax
* Added print methods for -ddump-stg
* Added entry for UnariseStg. Tracepoints pass are not unboxed-tuple binders so
  there is no need to translate them away
TracepointTick in Core translates to StgTracepoint in Stg
Added empty module StgCmmBacktrace.

This module will contain functions for backtrace support in the Code Generator.
Code generate the tracepoints themselves

*Thread all of the tracepoints added during desugaring through to
 code generation
*At code generation create a c struct for each tracepoint
*Label each c struct with an appropriate c label
Code generate StgTracepoints to rts call "pushTracepoint"

*Arguments to "pushTracepoint" are:
  1. The current capability
  2. The c label for that tracepoint