GAITL: A generalised version of the almost ideal and translog demand systems