Simpler sugar

New parameterization of sugar expressions. Now a sugar expression is parameterized with
 - `eT` the scalar type the expression evalautes to
 - `Expr` for the CRTP implementation

In addition, sugar expressions can be either applied to a target, or iterated over between `sugar_begin` and `sugar_end`. We no longer support the extracting operator `operator[](int)`.