Initial code commit.

- Added API with mocking/testing support.
- Started fleshing out session initialization.
Starting to add a spotify error wrapper. TDD style
Some simple testing with new Error type
Tests for using Error in NewSession