Update phylip writer to use Alignment.is_valid

No longer breaks encapsulation. Also updated error messages to better match I/O framework.