read/write support for NonLinLoc formats

This PR is for..
 - writing NonLinLoc phase files from Catalog/Event (to use in NonLinLoc location runs)
 - reading NonLinLoc hypocenter-phase files into Catalog/Event files (to use internally or output to QuakeML)
Maybe a `ValueError`, or even `RuntimeError` (its description seems pretty catch-all). Setting up an ObsPy-wide exception is probably a good idea in the future, though.