Added Maybe<T> template

For use with getting values that may or may not exist in phrases and
sub-properties.
Added pointer constructor for ComObjects
Started using Maybe<T> where sensible.