NSX: Add ability to retry on 503's returned by the controller

There are a number of circumstances where the NSX controller
may return 503. Currently the API client does not retry, so
this patch adds a retry logic with timeout.

Closes-bug: #1284277

Change-Id: I85df087d5ae409e6cb5c35eb171e89346abe81f4
Call target plugin out of DB transaction in the Metaplugin

Previously, there are cases that a target plugin is called
within a DB transaction in the metaplugin. This possibly causes
"DB lock timeout" error since a target plugin may take a long
time (ex. communicate to a controller).

Change-Id: Ie2971bfae1fecc97086b58cd943c321feb0aba04
Closes-Bug: #1267291
Merge "NSX: Add ability to retry on 503's returned by the controller"
Merge "Call target plugin out of DB transaction in the Metaplugin"