code: function( a, b ){
  
      if ( Physics.util.isPlainObject( b ) ){
  
          return Physics.util.extend({}, a, b, deepCopyFn );
      }
  
      return b !== undefined ? b : a;
  }
docs: Physics.util.options( def[, target] ) -> Function
  - def (Object): Default options to set
  - target (Object): Where to copy the options to. Defaults to the returned function.
  + (Function): The options function
  
  Options helper to keep track of options. Call it with a config object. Access options directly on the function.
  
  Example:
  
  ```javascript
  this.options = Physics.util.options({ foo: 'bar', opt: 'def' });
  this.options({ opt: 'myVal' });
  
  this.options.foo; // === 'bar'
  this.options.def; // === 'myVal'
  
  // can also change defaults later
  this.options.defaults({ foo: 'baz' });
  
  // can add a change callback
  this.options.onChange(function( opts ){
  // some option changed
  // opts is the target
  });
  ```
   deep copy callback to extend deeper into options