New approach for setter and getter(data and info)

The setter for info and data accepts object, string, list of strings,
boolean array or an array of indices as locations.
This change has been applied to the entire files.
Also some bugs in throat length and in GenericAlgorithm have been fixed.