(PDB-809) Store top level structured fact data as JSON

This adds the storage of the top level facts that happen to be structured in a
new column of fact_values called `value_json`. This is provided so we can query
top level facts for the /facts endpoint in a performant way, without having
to also reassemble the pieces of values into a JSON object later on.

This patch also removes some dead code from the facts endpoint code, and moves
the generalised reassembly code that was shared between facts and factsets into
a factsets specific area. Since now, this is the only endpoint that needs this
code.

Signed-off-by: Ken Barber <ken@bob.sh>
(PDB-809) Use json stored branch for factsets also

This patch fixes it so factsets can also benefit from the depth 0 json storage.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #1048 from kbarber/ticket/master/pdb-809-store-unflattened-fact-data

(PDB-809) Store top level structured fact data as JSON