clean code in raiden.mtree, get rid of internal 'first' argument
clean code in raiden.mtree, get rid of internal 'first' argument

get rid of the internal first argument, which has been used to decide if
this is the first call to merkleroot, i.e. that merkleroot is being
called from an outside caller and doesn't call itself [1].

Instead use an internal _merkleroot function, that recursively calls
itself.

Also document the perversion of proof being modified in place by
merkleroot [2].

build_lst should also probably be renamed, though I didn't do that in
this commit.

[1] the name 'first' has also been reused in the function with a
different purpose.
[2] yes, maybe I've had too much exposure to clojure lately

charles-cooper/raiden,hackaugusto/raiden,tomashaber/raiden,tomaaron/raiden,tomaaron/raiden,tomashaber/raiden,tomashaber/raiden,tomaaron/raiden,hackaugusto/raiden,tomashaber/raiden,tomashaber/raiden,tomaaron/raiden,charles-cooper/raiden