Allow options.defaultValue of DS.attr to be a function

This change allows the defaultValue defined for a DS.attr to be a
function, so it is possible to do something like this:

``` javascript
User = DS.Model.extend({
  createdAt: DS.attr("date", {
    defaultValue: function() {
      return (new Date());
    }
  })
});
```