Improves upon/fixes idris-lang/Idris-dev#530

I have tried to reorder the way expression are parsed in order to improve error messages on simple expressions. 

NOTE: There maybe need for further refactoring to improve error messages for pi constraints later.