[DSL] Builder: always copy parameters
[DSL] Builder: always copy parameters

Since each Term instance can only be in at most one Formula or Term,
re-using instances removes them from the original object they belong
to. Thus, instead of leaving the responsibility to copy the terms to
callers, do it in Builder directly. Also, add null checks for the
arguments.

maul-esel/rapanui