make the findBy and findOneBy functions defined only once

handle the empty definition case for properties that just have things that are meaningful to our code but not the javascript.defineProperties()

pickClient(), extendClient() to allow safe updating of a dbObject from the browser (things like ids are filtered out )