SML: Problems 22-27, with driver

In addition to solving problems 22-27, implements a proper "main"
driver that works with both mlton and smlnj.  The 'euler' program can
be built with:

   mlton euler.mlb

And run with

   ./euler all
   ./euler 8
   ./euler 9 13

The code can be loaded in smlnj with:

   - CM.make "euler.cm";

and a standalone heap image built with:

   ml-build euler.cm Euler.main euler

This can be run with

   sml @SMLload=euler all

(note that if the mlton executable exists, sml will try running it,
and generate an error)
Ocaml: Update to Batteries 2.0

Overall, make more modern.  Use a single driver instead of generating
a separate executable for each problem.
Scala 13-16, 23
Ocaml: 39-43
Ocaml: Eliminate warnings

Enable full compiler warnings, and eliminate all of the situations.
Ada: Finish 47

Finish the implementation of problem 47.
PostgreSQL: 1-7