Fix plugin management with Jenkins restart

  - change plugin managent logic from per-plugin management to plugin set
  - for plugin set management add two parameters:
     * jenkins.client.plugin_remove_unwanted - to remove plugins not listed
       in jenkins.client.plugin
     * jenkins.client.plugin_force_remove - to forcible remove plugins
       including dependants but taking into account dependencies of installed
       plugins
  - update state waiting for jenkins availability
  - change error catching in API crumb getting to not fail on 50x errors,
    to be able to handle exception in state(s)

Change-Id: Ia62af392b30f92c7fdff87ea17fce2cf284d6818
diff --git a/README.rst b/README.rst
index 69a295d..df9f3d9 100644
--- a/README.rst
+++ b/README.rst
@@ -451,12 +451,16 @@
 
     jenkins:
       client:
+        plugin_remove_unwanted: false
+        plugin_force_remove: false
         plugin:
-          swarm:
-            restart: false
-          hipchat:
+          plugin1: 1.2.3
+          plugin2:
+          plugin3: {}
+          plugin4:
+            version: 3.2.1
             enabled: false
-            restart: true
+          plugin5: absent
 
 Adding plugin params to job
 
@@ -476,11 +480,7 @@
                 categories:
                   - my_throuttle_category
         plugin:
-          swarm:
-            restart: false
-          hipchat:
-            enabled: false
-            restart: true
+          throttle-concurrents:
 
 LDAP configuration (depends on LDAP plugin)