implement external_relaxed versioning type - (Doesn't throw VersionConfl...

...ictExceptions)

I wanted to change elasticsearch so it didn't throw a VersionConflictException if it received a create/index/delete request for a version less than the current index version. It returns the normal 'ok' response but the version number returned is the latest index version.

The reasoning behind this is; I am writing a very thin wrapper to elasticsearch, and any request into the wrapper after elasticsearch is put onto a messagequeue, if putting on that queue fails I return a specific 'temporary' error and the client is supposed to resend the request. When they resend the request, I didn't want it to fail at elasticsearch, hence this version type of external_relaxed....

feedback appreciated.