TrieIter: Add outputsize check to TrieIterGetString, fix it for GetArray
TrieIter: Make outputsize check in Next and GetKey consistent

- Previously TrieIterGetKey would return a wrong value if an outputsize of 0 or smaller was provided
TrieIter: Add test for Next and GetKey with outputsize = 0
TrieIter: Fix multiple issues with IterGet* return values

- IterGetString returned false on success
- IterGetArray always returned false when outputsize = 0
- Checks for value type are now consistently placed together with the iter empty check, equivalent to TrieGet* code