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)           
  console.log(err.statusCode)  // http status code
  console.log(err.allErrors)      // typically not used, but twitter may return more than one error
  console.log(err.twitterReply) // raw response body, if any (consistent with current error usage)
})

```