if public is excluded check it if exists.

This is a hard one to get right. I am trying to ignore the crap that is in
public but the public schema exists and the tests will blow up.

Public is always created in an empty database. So unless you explictly drop it
and it doesn't exist then this shouldn't cause problems.
add support for ownership checks.