First implementation of getStyleInfo

getStyleInfo returns a simplified JSON format to make it easier to convert to CSS
Not sure why the `isPending` check is necessary -- any newly constructed promise will be in a pending state. Moreover, you shouldn't actually need to construct a new deferred.

This entire bit of code (from line 564 until the return statement) can be written (this code isn't tested, but I believe it is approximately correct -- let me know if you have troubles.):

```javascript
return this.getDocumentInfo(documentId, params.flags).then(style.extractStyleInfo);
```