Fix getter/setter detection in .attr and .prop to use arguments.length

Fixes madrobby/zepto#942

This is to match jQuery's behavior:

```js
// Is now a setter instead of a getter
$("#el").attr('value',undefined);
```
This sets the attribute value to `undefined`, but doesn't check what is the actual outcome of that operation. Is the attribute set to empty string, removed, or set to literal string `"undefined"`?

In my opinion, `null` or `undefined` values for `attr` should remove the attribute. Please add assertions for what `attr('data-undef')` returns after this operation, as well as `getAttribute('data-undef')`