Disallowed patterns in extern fn declarations.

Closes #10877
auto merge of #12715 : dmski/rust/no-extern-fn-pat, r=alexcrichton

Fixes #10877

There was another PR which attempted to fix this in the parser (#11804) and which was closed due to inactivity.
This PR modifies typeck instead (as suggested in #11804), which indeed seems to be simpler than modifying the parser and allows for a better error message.
add tests for `min` and `max` from `Float`
stats: fix handling of NaN in `min` and `max`

The `cmp::min` and `cmp::max` functions are not correct with partially
ordered values. #12712
auto merge of #12718 : thestinger/rust/min_max, r=alexcrichton