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`.