Image size not correctly calculated

In `_get_image_size`, we find the first `ext` of the passed-in element in order to calculate the image size. The problem is that the image sizes may be in a `ext` node that is not actually the first one encountered in the tree.

Consider the following XML

```xml
<a:graphic>
<a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:pic><pic:nvPicPr><pic:cNvPr id="0" name="foo.jpg"/>
<pic:cNvPicPr/></pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId6">
<a:extLst><a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"><a14:useLocalDpi val="0"/></a:ext></a:extLst>
</a:blip>
<a:stretch><a:fillRect/></a:stretch>
</pic:blipFill>
<pic:spPr><a:xfrm><a:off x="0" y="0"/>
<a:ext cx="1600200" cy="2324100"/></a:xfrm><a:prstGeom prst="rect"><a:avLst/></a:prstGeom>
</pic:spPr>
</pic:pic>
</a:graphicData></a:graphic>
```
`find_first` for `ext` within the scope of `graphic` is going to find `<a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}">` when the desired node should be `<a:ext cx="1600200" cy="2324100"/>`

As a result, `_get_image_size` returns zero for both dimensions when they are clearly not zero.

This bug is part of a larger issue with our use of the `find_first` helper. 
This fixes the bug. The rest of the changes are new tests and updates to existing tests.