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)
I don't see any more specific Python builtin exception that makes sense here. I guess I could derive a special `NLLocException` but I doubt that would be very useful. The only thing that makes sense in my opinion would be an obspy-wide exception for file format detection or file format read errors that is used in all plugin modules. But that's beyond the scope of the PR.. What do you think?