FieldComparator and StreamComparator have been collapsed into a single class StreamComparator. There was no need for a separate abstract class.
Added null checks in StreamComparator. For now if both are null then they will evaluate to equal. We can add a later enhancement under a new ticket to make that configurable.
Interfaces ExpressibleStream and ExpressibleComparator have been collapsed into interface Expressible. They defined the same interface and there's no reason to have separate interfaces for them.