Modify error handling for specific errors, and reathorize when reconnecting.

For certain error types (Redis LOADING the dataset, SYNC in progress/master down,
and AUTH failures) it may be prudent to throw an exception rather than simply
return false.

In addition, this commit adds logic to reauthorize the connection in the event of
a reconnect (for whatever reason).

Addresses #515
Re-add % signs accidentally deleted
Merge branch 'errorthrow' into develop