html_last_updated_fmt option is interpreted as a
byte string in python3, causing Sphinx build to break.
This patch makes it utf-8 string.
Changing Popen to .check_output because of 3 reasons:
1. check_output() will raise CalledProcessError if
the called process returns a non-zero return code.
2. For consistency with keystone  and cinder 
3. It makes the code look much better.
Following commits accomplishes several things:
* unit tests run with ostestr
* coverage calculation
* documentation generated using OS approach & theme
* bandit linting