Undo #407
Implemented upsert.
Updated upsert for bulk actions.
Updated bulk to support scripts directly.
Make Scripts first class citizens.
AbstractDocument should use setData() to support scripts and documents.
Added more methods to use scripts for updating in bulk.
AutoPopulate is not required for scipts.
Updated tests to work with changes.
Simplify AbstractDocument::create()'s type checking.
Updated and added some more tests.
Formatting.
Formatting.
Update changelog.
Updated type checking for AbstractDocument::create().
Bulk updates also support doc_as_upsert.
Added tests for bulk api using doc_as_upsert.
Optimize the index prior to testing the mapping.

Related to pull request https://github.com/ruflin/Elastica/pull/359
Can now create a query with an array
Add tests and update changes.txt