Improve syslog module

* Add typespecs
* Add types
* Expose priority/1, facility/1, and openlog_opt/1 for validation
* Add guards to catch errors with priority/1, facility/1, and openlog_opt/1
* Fix code_change/3 bug