Refs #2480 - Abandon use of boost::optional.

After a discussion with Martyn it seems likely that for the version of
GCC and/or Boost we have for RHEL6 we are unable to return boost::optional
objects from functions without getting the warning I've been trying to
fix.  Elsewhere, we pass them into functions by reference and therefore
avoid the problem.

I'm not a huge fan of that option, so in this case exceptions will provide
the functionality I need instead.

Also, renamed a function and some variables to make things clearer.