Separate extern crate and pub mod searches

 - fixed bug where 'collections' crate was getting matched to core::collections module and vice versa
Add struct field type inference - so you can do self.myfield.<tab>
fix bug: when doing static scope search was mis-matching the first function of an impl as a function
bugfix: macro invocations were confusing codeiter

e.g. 'local_data_key!(local_stdout: Box<Writer + Send>)' doesn't need a semicolon to terminate