[WIP] PDB Fixes for 528

Added more hacks to our PDB parser.  It's generally unpleasant to carry around more metadata everywhere, but I suppose it was unavoidable...
can you add a test here to ensure that `to_dataframe` and `from_dataframe` are actually inverse operations for this 3nch? I think we have an `__eq__` method on Topology, so it should be easy to code.