Add Black-scholes calculation.
Change map functions to take inputs as varargs, which makes using
pre-existing functions a bit easier. Update tests and builtins to
use the new model.

Add AsArray expression and related code to distarray which allows
up-converting scalars and numpy expressions to behave like distarrays.
This allows for (mostly) correct handling of operations like (x + 1),
without a lot of checking for types.