According to the docs, instance method `.delegate`'s argument `data` is optional, but the truth is `data` is required. this PR just fixed it.
And some slight modification for `for` loop execution efficiency.
add one more option `jsonp` for $.ajax.

### new features
add two features for af.

#### 1. user don't want to add callback=? to the url which is very inconvenient and unnecessary.
```
$.ajax({
  url: 'http:/example.com/group/swRightHP/do_query.jsonp?firstCatId=7&secCatId=727&leafCatId=1',
  type: 'get',
  data: {a: 1, b: 2},
  dataType: 'jsonp',
  success: function(data) {
       console.log(data);
   },
   error: function() {
       console.err(arguments);
   }
})
```
requested url:
**http:/example.com/group/swRightHP/do_query.jsonp?firstCatId=7&secCatId=727&leafCatId=1&callback=jsonp_callback1**

#### 2. add one more option jsonp for $.ajax, so we can specify the name of the callback now.
```
$.ajax({
  url: 'http:/example.com/group/swRightHP/do_query.jsonp?firstCatId=7&secCatId=727&leafCatId=1',
  type: 'get',
  data: {a: 1, b: 2},
  dataType: 'jsonp',
  jsonp: 'myCallback',
  success: function(data) {
       console.log(data);
   },
   error: function() {
       console.err(arguments);
   }
})
```
-> requested url: **http:/example.com/group/swRightHP/do_query.jsonp?firstCatId=7&secCatId=727&leafCatId=1&myCallback=jsonp_callback1**

See also: http://api.jquery.com/jquery.ajax/
$('body').append() will never execute script.

**Note: this might not be a bug, if you think it is a good idea to execute script in $(selector).append() just as jQuery does.**

### bug decription
the script which is appended to the DOM will never be executed.

### how to reproduce?
try this
```
af('body').append('<script>alert(1)</script>');
af('body').append('<div>this is newly added.</div><script>alert(2)</script>');
```

### how to fix?
the code below never get a chance to run.
```
if (obj.nodeName != nundefined
    && obj.nodeName.toLowerCase() == "script"
    && (!obj.type
    || obj.type.toLowerCase() === 'text/javascript'))
{
    window['eval'](obj.innerHTML);
}
```
**because the obj is either a $afm instance or undefined, so the obj.nodeName will always be undefined.**
so I just changed the code logic to make it works, check it out.

a little more advice: if you do think it is really not a good idea to support this feature due to the performance of af, then just discard it.