Added 'compile_opt idl2' to all IDL procedures/functions.

According to Bob, "This is a compile-time directive and idl2 means that
the default integer type is a 32-bit integer instead of a 16-bit integer
and it limits the array index syntax to just [] (the default also allows
() - which leads to confusion when reading the code because it's
difficult tell when one is a function and one is an array)."

Also, the unique.pro code was replaced with a much simpler use of the
IDL UNIQ function.  This was tried on a previous iteration of the code
but didn't included the necessary sort step to ensure unique values in
the returned structure.