exported declarations now don't take the exclusive slot

Export and local symbol are used to mutually exclude each other so having exported and non exported declarations with the same name that can be merged lead to 'Duplicate identifier' and as a consequence these declarations were attached to a different symbols.

    function foo(...); // symbol 1
    export function foo(...); // symbol 2
    function foo(...) // symbol 1

Such layout makes declaration analysis extremely inconvenient since there are no easy way to reconstruct actual sequence of declarations in program

This PR allows exported and non exported declarations to share local symbol.