Changed to throw IOException
Changed recover to throw IOException
Simplified exception handling in parse method. Now all throwables that are declared for parse method are thrown through. All other exceptions will cause recover handling. Either by parser class @RecoveryMethod, or if it doesn't exist, by InputReader.recover.