WIP: Improve meta data extraction from DICOM files

This is basically the meta data extraction, without anonymization, stuff from PR #232 with some improvements. Added tests for most of the functionality.

Adds the meta data extraction parts from dcmstack, with some improvements.  Most notably it can also parse the Siemens XProtocol format (kind of looks like XML but isn't).

I still need to fix text encoding and filtering of non-text byte data in the `extract` module. Text in a DICOM file can basically have any encoding and there is often no specification of what that encoding is.  

@matthew-brett  how do you feel about pulling in chardet (https://github.com/chardet/chardet) as a dependency? It is less static than OrderedDict, so I guess we don't want to pull it into externals.