Change pdb parser to use sscanf

Fixes bug where if columns Y or Z in the pdb file are a full 8
characters, they will be parsed as part of X or Y, respectively. Also
added unit tests for the new behavior, some refactoring of the header
file includes.