* Custom array deserializer functions
Create custom functions to deserialize manifest JSON arrays. This can
avoid the pathological case in the stdlib JSON decoder because it won't
have to read the whole input to determine if the array is a valid JSON
object.
* Wire up custom decoder
* Minor code cleanup
* fix some lint errors
* make json parsing of manifest a bit more robust
* cleanup state in calling function
* Add some tests
* Add case insensitive test
* Linter fixups