[MRG, BUG] Scan Opt fixes, enhencements

NEWS.txt:
- fix opt disabled/warning related to scan(Frederic B., reported by Axel Davy)
- fix crash or disabled optimization related to {AdvancedSubtensor,CSM}.infer_shape()  (Frederic B.)
- Make scan gradient faster (Frederic B.)
- slice related(used by AdvancedSubtensor) optimization disabled warning removed (Frederic B.)
- [bug] Scan raise an error for negative and 0 step  (Frederic B.)
- Make debugprint accept list/tuple of all the element it accept  (Frederic B.)
- get_scalar_constant_value() now work over maximum and minimum. Also it know about Rebroadcast(x,...).shape[idx].  (Frederic B.)
I disagree with this.  It should be the responsibility of the signature() method to return something hashable, no matter what the underlying type is.  This is just hiding errors.