static <V> int rewrite(
		final TreeNode<V> tree,
		final Iterable<? extends TreeRewriter<V>> rewriters
	) {
		return rewrite(tree, Integer.MAX_VALUE, rewriters);
	}
Rewrites the given {@code tree} by applying the given {@code rewriters}.
This method to apply all rewriters, in the order they are given in
the sequence, until the tree stays unchanged.

@see #rewrite(TreeNode, int, Iterable)

@param tree the tree to rewrite
@param rewriters the rewriters applied to the tree
@param <V> the tree value type
@return {@code true} if the tree has been changed (rewritten) by this
        method, {@code false} if the tree hasn't been changed
@throws NullPointerException if one of the arguments is {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/rewriting/TreeRewriter.java