Upgrades retrofit so we can use OkHttp 2.0

OkHttp 2.0 fixes issues with authentication errors in retrofit,
plus it doesn't have problems interfering with other http clients
in 3rd party libraries like versions 1.* did.

This commit also fixes some logical errors in CanvasError and
updates to new Retrofit APIs.
can getMessage be null?