Implement attributeChangedCallback(), fixes #343.

I read http://w3c.github.io/webcomponents/spec/custom/#dfn-enqueue-lifecycle-callback, but the spec is unclear to me.   What are the arguments to the attributeChangedCallback() method?   The spec mentions namespaces but isn't specific, so I followed Polymer's format of

```
attributeChanged: function(attrName, oldVal, newVal)
```

except that I called it attributeChangedCallback to match http://w3c.github.io/webcomponents/spec/custom/#dfn-enqueue-lifecycle-callback.

Some other minor points:

* Sync or async?   I did sync.
* When there's no old value or new value, should it pass null or undefined?  I did null.
* When should the method be called in relation to the attribute's value actually being changed?   I am calling it after the value has been changed.   The spec talks about element queues but it's quite confusing.