Add shadow support for OpenBSD

In addition, this commit also consolidates all BSD shadow operations into a single module, replacing freebsd_shadow.py and netbsd_shadow.py with bsd_shadow.py.