Better error handling

Now, all errors received from the twitter api are error objects and have the following properties:

```js

twit.get('statuses/user_timeline', function (err, reply, res) {
  console.log(err)
  // twitter error message, if any
  console.log(err.message) 
  // twitter error code, if any
  console.log(err.code)
  // http status code           
  console.log(err.statusCode)
  // typically not used, but twitter may return more than one error
  console.log(err.allErrors)      
  // raw response body, if any (consistent with current error usage)
  console.log(err.twitterReply) 
})

```