Create wrapper object to handle duolingo response

This removes a lot of responsibility from the user object, as it
should not be dependent on the structure of the data returned from
duolingo's api.

* Minimise public api of Duolingo::User
* Move large json into Data struct
* Wrap Json response with wrapper object