(maint) Make array_value and map_value mutable.

Allowing adding new elements to array_value and map_value.
Removing vector/map constructors from both, respectively.
Removing elements member that returns the underlying vector/map respectively.
Adding size, empty, and each members for consistency.
Updating tests for new interface.
(maint) Fix resource leak in scoped_bio.

Fixing resource leak in scoped_bio where the base constructor wasn't being called so the deleter function wasn't set.
Removing the default base constructor to prevent this from happening in the future.
(CFACT-12) Implement external facts in JSON files.

Implementing a JSON external facts resolver.
Adding scoped_file to scope FILE*.
Fixing tests where ASSERT_EQ was used for doubles (ASSERT_DOUBLE_EQ should be used instead).