MFV r272804:

Refactor the code and stop restore_object from creating two transactions.

Illumos issue:
    3693 restore_object uses at least two transactions to restore an object

MFC after:	2 weeks
Add CROSS_TOOLCHAIN macro select pre seeded external toolchain configuration files
The goal is to provide pre seeded toolchain configurations withing the ports tree
to allow the use of an external toolchain in a simple way:

make CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc TARGET_ARCH=powerpc64 buildworld

This will look for the external toolchain definition in /usr/local/share/mk/powerpc64-gcc.mk
While here add the notion of X_COMPILER_TYPE to the external toolchain framework to allow
to deal with differences between gcc and clang in regards of cross building
Make iSCSI connection close somewhat less aggressive.

It allows to push out some final data from the send queue to the socket
before its close.  In particular, it increases chances for logout response
to be delivered to the initiator.
Fix build when XCC is defined and X_COMPILER_TYPE is not
Add OBJCOPY to the list of external tools
Fix typo
Only catch the line from the compiler output  where 'version' is a word
This allows to build the kernel with gcc 4.9.1 from ports
* Wire large user buffer before processing GET request.
* Fix incorrect size calculation for IP_FW_XGET request.
* Fix use-after-free in table printing code.
* Fix showing human-readable error in table cmds code.
Add example devd configuration file for USB printers.
Fix core on table destroy inroduced by table values code.
Rename @ti array copy to 'ti_copy'.
Add sysctl knob to disable port power on a specific USB HUB. You need
to reset the USB HUB using "usbconfig -d X.Y reset" or boot having the
setting in /boot/loader.conf before it activates.
Move the SCTP syscalls to netinet with the rest of the SCTP code.  The
syscalls themselves are tightly coupled with the network stack and
therefore should not be in the generic socket code.

The following four syscalls have been marked as NOSTD so they can be
dynamically registered in sctp_syscalls_init() function:
  sys_sctp_peeloff
  sys_sctp_generic_sendmsg
  sys_sctp_generic_sendmsg_iov
  sys_sctp_generic_recvmsg

The syscalls are also set up to be dynamically registered when COMPAT32
option is configured.

As a side effect of moving the SCTP syscalls, getsock_cap needs to be
made available outside of the uipc_syscalls.c source file.  A proper
prototype has been added to the sys/socketvar.h header file.

API tests from the SCTP reference implementation have been run to ensure
compatibility. (http://code.google.com/p/sctp-refimpl/source/checkout)

Submitted by:	Steve Kiernan <stevek@juniper.net>
Reviewed by:	tuexen, rrs
Obtained from:	Juniper Networks, Inc.
Regenerate after r272823:
Move the SCTP syscalls to netinet with the rest of the SCTP code.

Submitted by:	Steve Kiernan <stevek@juniper.net>
Reviewed by:	tuexen, rrs
Obtained from:	Juniper Networks, Inc.
Use offsetof() from sys/types.h instead of a custom one
This fixes build with recent gcc versions
Sync to HEAD@r272825.
Add size(1) to the cross build toolchain
Bump ipfw module version.
When building with a newer GCC, suppress some warnings for the
moment. The kernel isn't ready for them without a lot of work.
Change the hardcoded default back from SHA512 to DES.

PR:		192277
MFC after:	3 days