[WIP] middle/check_const: CheckItemRecursion should only recurse into NodeItems

*Note:* This used to be #13950. Unfortunately due to poor branch management practices on my part, I had to close it in favor of this issue.

This fixes a bug in `libsyntax` which would crash on ASTs containing references to foreign externs. Previously the included test would fail with,

    rustc' failed at 'expected item, found foreign item test_extern::test_extern (id=13)', /opt/exp/rust/src/libsyntax/ast_map.rs:264