commitWithin in place of commit

This enables solr to determine the exact time to commit, grouping them as necessary. Also, commitWithin is async, where as commit waits until the commit is finished to return.