Remove any file in Core using `extern`
Add new collections for better option/property hash management

- IDefault and IDefault<K> for objects that have "property gets"
- OptionHash to replace Hashtable and object[][] usage in XmppStream