Fixes ingestion bug and performance issue

Ingestion used to check to see if a parameter was empty by evaluating
it, which casues the entire parameter function to evaluate against the
array. This patch prevents ingestion from evaluating parameter functions
it doesn't need to.
Adds comments
Merge pull request #1848 from lukecampbell/1774

OOIION-1774 Fixes ingestion bug and performance issue