MFC 350012: Always set td_errno to the error value of a system call.
Early errors prior to a system call did not set td_errno. This commit
sets td_errno for all errors during syscallenter(). As a result,
syscallret() can now always use td_errno without checking TDP_NERRNO.
Compared to the original commit, this change preserves the ABI of
struct thread and instead adds explicit zero'ing of td_errno.