Enabling soft commits for Solr4

This pull request adds the ability to do soft commits in Solr4. Three function pairs were patched: commit, commit_if_dirty and commit_if_delete_dirty in Sunspot and Session classes. An optional boolean parameter denotes a soft commit if true. New tests are added and all tests are passing. Documentation is also updated to explain hard and soft commits.