Fix #305 Implement Debug for many types
For most types it was a simple matter of adding #[derive(Debug)] but ParseOptions needed a manual implementation because the type of log_syntax_violation is Option<&'a Fn(&'static str)> and Fn doesn't implement Debug. log_syntax_violation is formatter as Some(Fn(&'static str)) or None depending upon its value.