Added ability to take inner product with an externally provided function

This pull request adds the ability to take the inner product of a Madness Function with an externally provided function (with a lower-case "f" --- i.e. not a Madness Function).

@robertjharrison asked me to implement `inner_ext()` so that users could calculate inner products without having to refine both operands. For example, suppose we want to calculate $< a | b >$. Instead of creating two madness functions
```
real_function_3d alpha = real_factory_3d(world).f(a);
real_function_3d beta = real_factory_3d(world).f(b);
```
and then taking the inner product using `alpha.inner(beta)`, we can refine only the function $a$, and then take the inner product with `alpha.inner_ext(b)`. This would be advantageous if we expect $a^{*}b$ to be smoother than $b$ itself.

I've added test_inner to src/apps/examples/ so that one can test the new `inner_ext()` functionality. Simply type
```
make test_inner
./test_inner
```
from within the src/apps/examples/ directory.