Support for new end points.

This pull request contains 3 "big" changes:
1. Added support for new end points.
2. Code refactoring.
3. Tests format change. 


Please find below more details.
1. Authy has exposed the new API end points:

  - Start phone verification (POST /protected/json/phones/verification/start)
  - Check phone verification (GET /protected/json/phones/verification/check)
  - Phone information (GET /protected/json/phones/info)
  - User status (GET /protected/json/users/:user_id/status)

  The phone related methods were encapsulated in the Authy.phone() method. For instance, to call the Start Phone Verification method you need to do:

  ```javascript
  authy.phone().verification_start({
    via: "sms",
    country_code: "1",
    phone_number: "111-111-1111"
  }, function(err, res) {
    // Stuff
  } );
  ```


2. A new method (authy._request) was added to handle all the requests (POST and GET) and we use it instead of calling the request object.


3. In the other hand, the format for the tests added was modified for readability.
options are ok when there are a pile of different variants. If it's a
known static set then I prefer parameters and staying consistent with
how other things are done it would be preferred.

Sergio wrote:
>
> In README.md:
>
> > @@ -87,6 +87,60 @@ authy.delete_user('1337', function (err, res) {
> >  });
> >  ```
> > 
> > +Get Registered User Status
> > +--------------------------
> > +
> > +user_status(id, callback);
> > +
> > +```javascript
> > +authy.user_satus('1337', function (err, res) {
> > +
> > +});
> > +```
> > +
> > +Start Phone Verification
> > +------------------------
> > +
> > +phones().verification_start(options, callback);
>
> Yes, I agree. We should pass the actual parameters, not an |options|
> object.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/evilpacket/node-authy/pull/10/files#r16298852>.