viewportOffset: extend forElement (it's used twice)

`forElement` was used twice in `viewportOffset`:
1. at line 1147 as `var element = $(forElement);`
2. at line 1156 as `element = forElement;`
This leads to error when `forElement` is string: `Element.viewportOffset('id')`
Merge pull request #87 from victor-homyakov/patch-31

Prevent error in `Element.viewportOffset` when string is passed as first argument.
Possibility to remove X-* headers for CORS request

`setRequestHeaders()` unconditionally adds specific headers to any request.

This patch gives possibility to remove these headers in order to allow simple CORS request.

Based on http://stackoverflow.com/questions/13814739/prototype-ajax-request-being-sent-as-options-rather-than-get-results-in-501-err and https://prototype.lighthouseapp.com/projects/8886/tickets/1590-ability-to-remove-headers-in-ajaxrequestsetrequestheaders-for-cors
Merge pull request #88 from victor-homyakov/patch-32

Don’t send Ajax headers whose values are `null`.

This allows end users to opt out of `X-Requested-With` and `X-Prototype-Version` by explicitly setting them to `null`. (Use case: making a CORS Ajax request without a preflight request.)
IE8 fix for the opacity check

IE8 fails to set the match variable which throws a javascript variable
Merge pull request #90 from jwestbrook/IE8Opacityfix

Prevent exception in IE when calling `Element.getOpacity`.
Firefox 18+ supports String#startsWith, String#endsWith
Optional position argument

Added optional position argument to `String#startsWith`, `String#endsWith`, as described in https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/startsWith and https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/endsWith.
Documented new arguments and examples.
Updated unit tests
Bugfix in toQueryParams (didn't decode '+' correctly)
Add documentation example for `Element#clone.`
Merge pull request #96 from victor-homyakov/patch-33

Use native `String#startsWith` and `String#endsWith` if present. Turn existing implementation into a true polyfill.
Merge branch 'master' of github.com:sstephenson/prototype
Add polyfill information to documentation for `String#startsWith` and `String#endsWith`.
Merge pull request #98 from kir/master

Ensure that '+' is correctly deserialized in `String#toQueryParams`.
Fix an issue with a capability check causing an error in IE 10.
Merge branch 'master' of github.com:sstephenson/prototype
Fixes scollTop property that is deprecated on body

Chrome 32 deprecates document.body.scrollTop, should use
document.documentElement.scrollTop instead. Polyfill describe here
https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY
Style and reduce redundant code
Merge pull request #110 from jwestbrook/cumulativeScrollOffset-fix

Fix use of `scrollTop` property in `Element.cumulativeScrollOffset`.