Added exceptions and throws with more specific errors.
Added code to resolve the 'Index' value if unknown and there is only 1 result.
Throw exception if more than one item has the same Defindex,
Added overload to GetItemValueInRef for searching by string if defindex fails.