(PDB-772) Modify the facts endpoint to return structured facts

This pull request causes the v4 facts endpoint to return typed and structured
facts while leaving the v3 responses stringified as before.  It also adds a
"name" column to the fact_paths table representing the first element of a
fact's path.  This column should be renamed to "fact" in the future to avoid
confusion with the many references to 'certname' as name.
The fact that the closing brackets are not indented by our pretty JSON output. Also the [{ are usually seperated by a space. Its not a big deal, just that this isn't what I've seen when I curl, would be good to make that roughly consistent for users.