Comment cleanups
Added Optional<T>::Compare() method, and refactored code a bit to use it; and more code comments/cleanups