feat(select): New select attribute directive ng:hasher

Add new attribute directive for specifying a hashing function for objects.
If ng:model is bound to an object and ng:options is "obj for obj in objs"
a reference equality is used for selection.
With ng:hasher you can bind a function that takes one argument and returns
a hash. Then the hash is used for comparision instead.

Ex.
`<select
    ng-model="selection"
    ng-options="obj for obj in objs"
    ng-hasher="hash_func">
/select>`

```javascript
scope: {
  selection: { id: 12, ... },
  objs: [{ id: 12, ... }, { id: 13, ... }],
  hash_func: function(o) {
    return o ? o.id : undefined;
  }
}
```

Will match model to the first obj in the objs array.