Add Table::findOrNew()

This method lets you easily find an existing entity or generate a new entity with the chosen properties. In addition to finding entities, it lets you patch/set additional attributes on the found/created entity.

I decided to call the method `findOrNew()` as I wanted it to have consistency with `newEntity()` and I was concerned that `findOrCreate()` might imply that the entity would be saved.

Refs #4631
More like allowing something that is not listening the accessible property. Although maybe also excluding could be useful in case conditions are taken from user input