Fixed a 3.10.2 regression, where attr change listeners subscribing with additional args, would see their args shifted if the attribute was set with options

For example, for the following use case (only):

```
foo.after("myAttrChange", function myListener(e, myCustomArg) {
   ...
}, context, myCustomArgValue);

foo.set("someAttribute", 20, myCustomOpts);
```

`myListener` would see `[e, myCustomOpts, myCustomArg]` instead of
`[e, myCustomArg]` for it's `arguments` list.

See: https://github.com/yui/yui3/issues/846

Testing
-------
Added new tests for the scenario.

*All* library tests pass:
✔ [Total]: Passed: 10988 Failed: 0 Total: 11078 (ignored 90)

Also manually tested the node-menunav examples. These passed functional
tests, even with the older broken code.