Add custom exception class
Add custom exception class providing extended exception API with
possibility to add file/function/line information in exception message.
Add union-find classes

Add several union-find implementations:
 - quick-find
 - quick-union
 - weighted quick-union
 - weighted quick-union with path compression

Weighted quick-union with path compression provides worst-case time for
M union-find operations on a set of N objects O(N + MlgN)
Add small code modifications
Merge branch 'custom_exceptions' into develop