Tidy up docblock.
More correctly fix issue where new entities would trigger an exists() query.

We need to allow 0 as a primary key, but not check for existing records
if there are no primary key columns.

Additionally, fix up tests that were checking that exists() was called
and now it is not.
Expand has() so we can check multiple properties at once.
Use EntityTrait->has() where possible.

The new has() signature supports higher level code in Table operations
and lets use not use array_filter() in various different ways.