allow global setting of operation preference

The operation preference can be set globally using :

cluster.routing.operation.preference: _primary

Usually this parameter is used on each request.

If the parameter is given in the request this has precedence over the global setting.

Use case:
The field cache is used for each shard. If you are using replicas the field cache is used for each shard/replica which needs lots of memory. To be able to use replicas without the need of high memory machines it is now possible to use only the primary shards for the queries.