Fix fragment inclusion when fragment === 'body'

In the case where 'body' was specified as the fragment the $fragment variable already pointed to the list of child nodes for the body so calling .contents() gave back the second level of descendents instead of the desired first level.
update unit test with new expectation to include body fragment direct children
Fix for issue #309
Add support for file input fields
Only use FormData() for POST requests
Add a test that shows that #309 is fixed
Make tests pass in phantomjs

phantomjs doesn't support window.history.state, so we can't test
anything related to it when running there.
Merge pull request #361 from aroben/fix-back-after-fragment-reload

Fix going back to a pjaxed state after reloading a fragment navigation
pjax 1.8.1
IE fix for blurring of active element

In IE, activeElement might be null, BODY element, or SVG element. In all
such cases, `blur()` will throw an exception. This swallows the
exception and moves on.

Fixes #316 #370
Merge pull request #374 from defunkt/safe-blur

IE fix for blurring of active element
pjax 1.8.2
Fix typo in README.md, "Layout Reloading" section
Change name in bower.json from "pjax" to "jquery-pjax"

The name of the package should match the name it is registered as in
Bower. Since this package is registered as "jquery-pjax", the name
should be that. This is also consistent with the name of the repo.
Improve documentation about pjax events

* Document all pjax events in the order in which they fire
* Document event handler arguments and cancellation behavior
* Correctly indicate which events fire from where
Merge pull request #385 from causes/bower-name

Change name in bower.json from "pjax" to "jquery-pjax"
Ignore events with prevented defaults
Add Gemfile for test dependencies

Closes #391
Explain that Sinatra server will be blocking
Merge pull request #379 from marcandre/ignore_prevented_default

Ignore events with prevented defaults