Support merging overloaded predicate builtins as well
In overload_*_builtin, pass all available arguments to created op/pred

- This so that we don't need to create builtins by hand when they need
  more than what was passed through before.
Move value_cst into a separate module

- This for symmetry with other value types.  This also creates a
  natural place to put related specializations, so move op_add_cst and
  op_value_cst there, and drop the dedicated files that these used to
  have.