Add docs on data syntax
Add docs on data syntax

Add reference documentation on introducing data types.

* Note that type constructors can use dependent types
* Document 'record' syntax and the generation of getter and setter functions
* Document 'codata' syntax and explain its effect

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