Refactor Relation::Empty to be simpler

* Remove second argument from constructor. There is no known reason
  the empty relation should wrap another relation.
Change Relation constructor to not return Relation::Empty

* The Empty subclass should only be reserved for "impossible"
  relations, or relations that cannot ever possibly contain a
  result. The optimizer is mainly responsible for identifying these
  cases (like: relation - relation), and we should mainly be working
  with materialized relations in our own code.
Update flay and reek thresholds