added null check to flattenData function so empty variables are not deleted
updated to use std demandbase variable names, added contextData example, comments/instructions
changed script tag for calling IP API so all parameters are passed, commented-out s_code stuff for testing
vast improvements all around.  efficientized and removed extraneous code.  refactored for readability.

removed isValid/isExternalIP and useless error checking, parsing now
iterates through all fields with no need to assign individual fields.
This more ubiquitous plugin better supports adding more fields and
using contextData w/o having to update multiple pieces of the
implementation.