Rework ident check.

Changed how I was checking for the ident as the previous method did not
account for the right patterns. This update ensures the extern fn fail
on the patterns expected, based on the test cases I have in:

src/test/compile-fail/extern-bad-fn-decls.rs

The changes to intrinsics.rs and variadic-ffi.rs are because in extern
definitions the use of '_' is not allowed, based on my understanding of
the issue.

I'm in need of help past this point as my tests are failing by the
errors that are being reported are what I expect. Something else is
going on but I'm at a loss as to where to even start looking.

Hopefully this change is a little more up to scratch! :)