The idata_set is a data.frame that specifies individual-level 
data for the problem.  An  ID column is required and there 
can be no more than one row in the data frame for each individual.
In most cases, the columns in the idata_set have the same names
as parameters in the param list.  When this is the case, 
the parameter set is updated as the simulation proceeds once at the 
start of each individual.  The `idata_set` can also be used to 
set initial conditions for each individual: for a compartment called
CMT, make a column in idata_set called CMT_0 and 
make the value the desired initial value for that compartment.  Note that 
this initial condition will be over-ridden if you also set the CMT_0 
in $MAIN.
The most common application of idata_set is to specify a population
or batch of simulations to do.  We commonly use idata_set with an 
event object (see ev).  In that case, the event gets applied
to each individual in the idata_set.
It is also possible to provide both a data_set and a idata_set.  
In this case, the idata_set is used as a parameter lookup for IDs
found in the data_set.  Remember in this case, it is the data_set
(not the idata_set) that determines the number of individuals in the
simulation.
An error will be generated if any parameter columns in the 
input idata set contain NA.