Return the result of the child element in `with` and `makeElement` inste...

...ad of `()`. This allows all of the `(a ~ ())` constraints to be removed from `With` and `Term` instances.

This was a local change that allowed me to get rid of the remaining `(a ~ ())` constraints. I think it makes sense for `with` and `makeElement` to pass the return value of the child along instead of discarding it and the simpler instances are nice as well.