Support getters and setters

Fixes support for getters and setters where supported by the engine. This only works if the getter/setter is set on the mixed in object directly.

Also cleaned up whitespace and linting errors and added a `.gitignore`.

Haven't added tests due to the issues in #17 and #18.

Example:

```js
var Counter = Compose(function(){
  this._i = 0;
}, {
  get next(){
    return this._i++;
  }
});

var counter = new Counter;
counter.next; // 0
counter.next; // 1
counter.next; // 2
```