Functional testing utility

A small utility to run functional tests and push results to zabbix every hour. 

A functional test can be written in any language the  only requirement is that it accepts a single arg (a yaml file path) containing configuration data and return (on stdout) a bit of yaml describing the results of the test. For example:

 result: OKAY # {OKAY|FAIL|ERROR} 
 msg: The service is functioning just fine thanks!

check can be used to run any (group of) tests by hand and return output in one of several formats, e.g.:
check -f table rgw nova 
prints a nice table of results.

The check util will limit the run time of checks, timing out if >2mins (by default). 

The zabbix_sender utility is used to push to zabbix server. As zabbix agent has a timeout of 30s max, we cannot run these checks inside the zabbix agent. 

Note: I also created a rados and keystone account for testing.