Handle type alias while implementing interface

Fix #277
Move IDE-agnostic code to core
Fix the issue with getting interface members
Merge pull request #374 from dungpa/type-instantiation

Handle type alias while implementing interface
add AsyncMaybe CE
use AsyncMaybe in ImplementInterfaceSmartTagger
InterfaceStubGenerator make argument names' first char lower case
cosmetics
fix argument indexing in InterfaceStubGenerator
fix after rebase