plugins: EnvGen - remove duplicated code

Signed-off-by: Tim Blechmann <tim@klingt.org>
plugins: EnvGen - unify envgen perform implemementation
Env: provide new step2 shape, which steps to a value at the end of a shape

the semantics of Env.xyc for \step is very awkward when using, because \step directly
jumps to the end value of a segment. this means that Env.xzc([[0, 0, \step], [1, 1, \step]])
will have the value 1 between time 0 and 1.
using \step2 instead of \step, the value between 0 and 1 will be 0, and it will jump to 1
at time 1

Signed-off-by: Tim Blechmann <tim@klingt.org>
Env: rename step2 to hold

'hold' shares the analogy of sample&hold and is therefore more expressive
than step2

Signed-off-by: Tim Blechmann <tim@klingt.org>
EnvGen: fix .kr method

Signed-off-by: Tim Blechmann <tim@klingt.org>
Merge pull request #975 from timblechmann/topic/env_step2

plugins: EnvGen: refactor and simplify ugen implementation and add a \hold shape.