Add examples of tail-recursive and non-tail-recursive functions.

In order for Scala to make a tail-call optimization to your functions,
the recursive call must be in the tail position of the function, that
is, the recursive call must be the very last thing that happens in the
function.

In function boom(), the recursive call is not tail-recursive, because
there is a pending addition operation waiting to be applied to the
result of recursively calling boom with x - 1.

Hopefully the (real) captured stack traces of running these functions
in the scala console will help demonstrate what's going on under the
hood.