add delete cluster setting and throw exception when validation fails

Added `DELETE`, `POST` and modified `PUT` method for "/_cluster/settings"

`DELETE` request will delete transient and persistent settings, there are two parameters `delete_transient` and `delete_persistent` to control delete transient and persistent settings, they are all default to true. It will return the deleted settings

`POST` will add the settings in request to the cluster settings (same as previous `PUT`)

`PUT` will clear the existing settings and add the settings in the request

Also will throw exception when validation for settings fail

cloeses #3670 and #5018