[agent] Fallback to user_data injected file for OpenStack

- If agent cannot get user data from the OpenStack user data service,
  then fallback to the user_data injected file.
- Added some more unit tests to OpenStack registry.
- Refactored the OpenStack Registry and Settings.