Make the plugin able to handle "unavailable" state

This change includes the following:
1. The ability to send JSON-formatted POST request with component
   name and version as parameters.
2. Handle "unavailable" state
3. Code refactoring

Currently, the web service URL points to http://chrcon.com/
temporarily.