Use optionals for parsers.

These are absent when disconnected, so use optional instead of null.

Left most of the calls as-is - if something assumed parser was
non-null before it assumes the optional is present now. Should be
easier to clean up later.