patch(1): Sync with FreeBSD

FreeBSD has taken our patch(1) completely (29 JAN 2013), forked it, and
has improved on it.  It's a relatively simple sync.  Selected change log:

More user friendly:
 - Ask only once for "apply anyway"
 - Tell user which patch failed rather than only # of hunk failures

Handle lines with null character:
 - read buffer for pgets properly populated
 - callers of pgets still misprocess buffer contents, but at least
   pgets is more accurate

Make "patch < fubar" and "patch -i fubar" equivalent:
 - previous behavior was source of "unexpected end of file in patch"
   errors when null characters came from stdin

Fixed error handling where final fclose got skipped
Fixed target selection logic to match was was documented on man page
Synced with OpenBSD base
mwait: Staticize cpu_mwait_halt

It is only used in machdep code.
x86_64: Make sysctl hw.cpu_mwait_halt read only

Sysctl machdep.mwait.CX.idle should be used to configure mwait hint.

Manipulate mwait hint value directly through hw.cpu_mwait_halt is not
safe, e.g. intr cputimer may need change for deep cpu specific C-state.
mwait/spin: Push sysctl into machdep code

On x86_64, make the sysctl read only.  Sysctl machdep.mwait.CX.spin
should be used to configure the mwait hint.

Manipulate mwait hint value directly through hw.cpu_mwait_halt is not
safe, e.g. intr cputimer may need change for deep cpu specific C-state.
acpica: Disable debug message by default
altq: Byte counter is not compat w/ RED or RIO AQM

For altq packet schedulers, use packet counter should be enough.

Reported-by: Pierre Abbat
x86_64: Print TURBO and SENSOR for "Thermal and PM features"
install(1): Fix 2.5 y/o verbose bug, use static functions

A bug was introduced by this commit to add the -D option:

a2bc4e56d4ab068fea12d65d13740b7a600769a8 (7 SEP 11)

It changed the -v verbose option from standalone to expecting input and
as a result, any use of -v caused the usage screen to come up.  Fixed.
Additionally, the pathnames.h header is unused, removed now.
Finally, several functions were turned into static functions and explicit
void casts were used when functions normally return integers.  The last
two change sets converge with FreeBSD.

xinstall has not been seriously updated in a long time and has fallen
behind BSD counterparts.  Syncing with FreeBSD may take several steps as
there is significant divergence and options (e.g. -l) do different things
on FreeBSD
x86_64: Turbo is now reported along w/ "Thermal and PM features"

No need to do it again.