Initial implementation of tracking and warning about correlated error

Added fields uid and correlated_set to class NDData. The field uid holds a unique id for that instance generated via uuid4() of the standard library. Correlated_set holds a set of uids of previous NDData instances combined through any method implementing _arithmetic.

Added logic to initialize uid and correlated_set in `__init__` of NDData.

Added logic to set the correlated_set of result to the union of the correlated_set of self and operand in _arithmetic. Checks for intersections of the two correlated_sets (if both operand and self carry uncertainty) and issues a warning if a single uid appears in both.

Issues:

Organization. I tried to follow the existing code for figuring out where to put things, I'm not completely sure it all follows style guidelines though. Likely improvements could be made to improve extensibility of added feature, I'll keep thinking about it.

Documentation. I added a parameter 'cset' to `__init__` in NDData but did not document it in the docstring. Do I document it manually following the style of the rest of the docstring, or is it generated using a tool? I was also unsure of how verbosely to comment code, comments in the source file seemed sparse, so I avoided trying to use them liberally.

Testing. I did not run the existing tests or write one for the new functionality. I am trying to fix an error with my pytest install ("NameError: global name 'basestring' is not defined" on Arch Linux), but once I fix that I plan to work on getting comfortable with the testing framework.

Optimization. (Now fixed) *Currently if an NDData object appears twice in a chain of arithmetic operations, its uid appears twice in the result's correlated_list. I'm not sure if checking for redundancy would be too much of a performance hit for the improvement of space usage. Keeping the list ordered might be a good medium (I'm also not sure how well built in ordering functions will handle UUID objects).*

[Edited after update from list to set]

Thank you,
Mabry Cervin
mpcervin@uncg.edu