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.
It is considered off. I'll add another test case to make that clear.