Restructure to make it easier to extend in the future

Reviewed by:	will
Suggested by:	ngie
Randomize Shared Object Loading Order

github-issue: #89
Refactor code. Clean it up and make it perform better. Tested on a full
amd64 install, complete with Xorg, xfce4, and Chromium. All works
perfectly, albeit with slightly more lag. Further performance
enhancements ought to be researched.
Merge remote-tracking branch 'origin/hardened/current/unstable' into hardened/current/unstable
Fix dependency on newvers.sh

Noticed by:	marck
MFC after:	1 week
Fix the watchdog timeout calculation to prevent wrap.  The RPi hardware
can't do a timeout bigger than 15 seconds.  The code wasn't checking for
this and because bitmasking was involved the requested timeout was
basically adjusted modulo-16.  That led to things like a 128 second
timeout actually being a 9 second timeout, which accidentally worked fine
until watchdogd was changed to only pet the dog once every 10 seconds.
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/segvguard
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/log
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/userlandenhanced
Merge remote-tracking branch 'origin/hardened/current/master' into hardened/current/unstable
Merge remote-tracking branch 'origin/hardened/current/segvguard' into hardened/current/unstable
Merge remote-tracking branch 'origin/hardened/current/log' into hardened/current/unstable
Merge remote-tracking branch 'origin/hardened/current/userlandenhanced' into hardened/current/unstable