Added slicing of NpTrace objects

As an alternative to having a burn-in argument, here is an implementation of trace slicing as suggested by @jsalvatier, along with tests. So, calling:

    trace[s]

with `s` as a slice on a `NpTrace` object will return another `NpTrace` with trace values sliced accordingly, and if `s` is a variable name it will return the array of trace values corresponding to variable `s` (i.e. the current behavior).