Improve enum option interface.

It is no longer necessary to have explicit NULL terminating arrays
passed to StringOption::enumValue().  Instead, let the compiler deduce
the size of the array.  Reduces the potential for coding mistakes, as it
is now impossible to forget to terminate the array.

Added a separate enumValueFromNullTerminatedArray() for those rare cases
where the array is programmatically constructed or the compiler for
other reasons doesn't know its size at compile time.

Change-Id: I5e7d63db1eeea6d9d271fa299c98c781f52bd89c