Make library flexible to support new api functions

Adds `options` hash to `pair()` and `authenitcate()` to be able to pass arbitrary options to API methods.

Gives access to the raw API response in pairing and authentication status objects, through the `.raw` attribute

Allows callers to override `base_url`, updates demo to use this feature.