Handle Style basedOn

The `basedOn` property indicates that a particular style is to include properties defined by the identified style, if it exists. A style with a `basedOn` is effectively a sub class of that style.

Input styles XML

```xml
<style styleId='foo'>
  <rPr>
    <b />
  </rPr>
</style>

<style styleId='bar'>
  <basedOn val='foo'/>
  <rPr>
    <i />
   </rPr>
</style>
```

Input document XML

```xml
<p>
  <r>
    <rPr>
      <rStyle val="bar" />
    </rPr>
    <t>AAA</t>
  </r>
</p> 
```

Output HTML

```html
<p><strong><em>AAA</em></strong></p>
```

- [x] Add a test case to show that a circular dependency doesn't cause an infinite loop

References:
 * http://www.schemacentral.com/sc/ooxml/e-w_basedOn-1.html
 * ECMA 376 Section 17.7.4.3: This element specifies the style ID of the parent style from which this style inherits in the style inheritance. The style inheritance refers to a set of styles which inherit from one another to produce the resulting set of properties for a single style. The val attribute of this element specifies the styleId attribute for the parent style in the style inheritance.
Since this is only called in one place, I'm not sure if it's worth the layer of abstraction to have a type map on the class and this method. I'm not sure, though. Having the name does help, but it wasn't obvious to me what a `style_type` was. It could be reasonable to assume that you would need that knowledge going in to have a chance of understanding the code, though.