Type checking, improved unit testing
- All methods/functions now enforce specific types for arguments, return values
- calc_r2 function now uses scikit-learn's r2_score function
- Changed unit testing scheme, now uses unittest library
- added a suite of unit tests