Build interface constructor differently
Build interface constructor differently

Now use elaborated method types, so that the constructor and method
types are elaborated in the same way - this is important if there's a
'case' or some other interestingly elaborated construct in the type.

FranklinChen/Idris-dev,uuhan/Idris-dev,FranklinChen/Idris-dev,mpkh/Idris-dev,mpkh/Idris-dev,uuhan/Idris-dev,kojiromike/Idris-dev,jmitchell/Idris-dev,kojiromike/Idris-dev,uuhan/Idris-dev,mpkh/Idris-dev,markuspf/Idris-dev,markuspf/Idris-dev,uuhan/Idris-dev,markuspf/Idris-dev,Heather/Idris-dev,Heather/Idris-dev,jmitchell/Idris-dev,markuspf/Idris-dev,kojiromike/Idris-dev,mpkh/Idris-dev,FranklinChen/Idris-dev,jmitchell/Idris-dev,markuspf/Idris-dev,FranklinChen/Idris-dev,uuhan/Idris-dev,kojiromike/Idris-dev,mpkh/Idris-dev,kojiromike/Idris-dev,Heather/Idris-dev,uuhan/Idris-dev,jmitchell/Idris-dev,uuhan/Idris-dev,mpkh/Idris-dev,jmitchell/Idris-dev,markuspf/Idris-dev,Heather/Idris-dev,FranklinChen/Idris-dev,Heather/Idris-dev,Heather/Idris-dev,FranklinChen/Idris-dev,markuspf/Idris-dev,jmitchell/Idris-dev,kojiromike/Idris-dev