Add "ambiguous type" and ready to use it
fix Issue 1983 - Delegates violate const

Carry information which function is overloaded and use it properly.
fix Issue 7322 - Taking address of deprecated functions isn't refused
fix Issue 7549 - typeof of overloaded function picks the lexically first one
fix Issue 8868 - overload resolution of &x.g() incorrectly chooses delegate over function pointer
fix Issue 9027 - Getting address of overloaded function using `cast` selects the lexically first one if there is no match