Generalize and reuse getObjectBy methods

I often end up adding custom properties to my `THREE.Object3D` objects but it is hard to use my custom parameters to find objects. Right now there are two specific methods to find objects by property. `getObjectById` and `getObjectByName`. My suggestion is to add a less specific getObjectByProperty method with as first param the `propertyName` and second param `propertyValue`. We can reuse this new method in `getObjectById` and `getObjectByName`. This ends up in less code with more flexibility.

An additional suggestion would be to add a get method to find by `uuid` like this:

`````
getObjectByUuid: function ( uuid, recursive ) {

    return this.getObjectByProperty( 'uuid', uuid, recursive );

},

`````

I hope you guys also see advantages in this change.