Try/typer reorg

A rather sweeping commit of typer structure. Main goal: Avoid code duplication and possible divergence of logic between tpd and Typer. 

I needed the previous fix/overloadedAccess pull request to make the code in this one compile under dotty. I removed that former pull request and combined the two, so that we can get this in quickly. 

Review by @DarkDimius @samuelgruetter