Alternative proposal for grouping exported and local declarations

This is another version of grouping exported and locals declarations (originally proposed as #37).
Implementation notes: 
- exported and local declarations can co-exist within a same symbol (similar to #37)
- exported node has a link to a local symbol
- local symbol is used to check if exports agree on all merged declarations (within one local symbol)
- additional extra check is run on export symbol for functions (to detect duplicate implementation\mismatched ambients) 
good point