Generalizing search/get methods in Object3D

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 a property. `getObjectById` and `getObjectByName`. My suggestion is to add a less specific getObjectByProperty method with as first param the `propertyName` or 'name' and second param `propertyValue` or 'value'. We are able to 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.


getObjectByProperty: function ( propertyName, propertyValue, recursive ) {

if ( this[propertyName] === propertyValue ) return this;