Fix py3 compatibility.
Only declare c-format if all %-usage is a c format

This prevents false positive for strftime-style strings.
Fix documentation type
Add Keyword spec parsing tests and fixes