Break up/rename Declarations

This is a first step towards #710. Does `AST` make sense for the name here? Was thinking of `CoreFn` and `CoreImp` for the other representations.