Expression and idiom are used interchangeably, and so are colloquial and vernacular; albeit incorrectly. Please advise on differences in meaning and recommend a proper usage.
An expression is broader than an idiom. An idiom refers to a type of expression, and is usually not predictable by what it states e.g. Kick the bucket means "die".
An expression refers to the way we say something e.g. We say 'get up' to mean to get out of bed. It's not an idiom, but an expression.
Vernacular refers specifically to the native speech of a certain place or class of people. It's usually colloquial as well.
Colloquial refers to any language that is non-standard or informal.
So, vernacular is sometimes informal and colloquial, but colloquial is not necessarily vernacular, because colloquial can refer to slang as well, which is not vernacular.
Use idiom only when referring to an expression that is peculiar or characteristic to a language, an expression that has already been dubbed idiom.
Expression is used to refer to a particular way of phrasing an idea, and can include idioms.
Vernacular is used only specifically to refer to "dialects'.
Colloquial is used to refer to informal and non-standard in general
All those explanations seem to go around in circles to me. Why not just say that an idiom is a combination of words having a meaning that is not apparent from the commonly understood meaning(s) of the words in that combination? And stop right there? That way, an idiom can be found within any vernacular, within professional jargon, or within "proper" normal usage of the language. And no, "idiom" and "colloquialism" are not the same. Consider the sentence "The place where old Jake kicked the bucket is a fur piece down the road." You have an idiom ("kicked the bucket") and a colloquialism ("fur piece down the road"), but the meaning of the latter phrase can be discerned from the face of it, so it is not an idiom.
Ham and Bacon provides a lot of good information, and I really just want to make some refinements to his answer (but too much just to comment).
I would say that colloquial refers to having a common, spoken quality. That is the focus of the term. It really does not mean nonstandard at all, just informal. It so happens that the "standards" (such as they are) for common speech often do not meet the standards for formal speech or for writing, and only in that sense might colloquial be considered nonstandard.
Vernacular, as an adjective and near-synonym of colloquial, refers specifically to regional speech. Unlike colloquial, vernacular does carry a noticeable connotation of nonstandard or substandard.
It so happens that idiom and vernacular are also a pair. When used more broadly, idiom can mean regional speech, or can mean the jargon of a profession or other group of people, making it synonymous with the noun form of vernacular corresponding to the adjective discussed above.
To tie it all together: An idiom is a vernacular expression. Some colloquial expressions are vernacular or idiomatic, but others are merely informal. Someone who moves to a new place may take some time to learn the local idiom or vernacular. (In this last example, it is much more common to use the term vernacular than idiom.)
One more thought on vernacular. It has also assumed an extended meaning. In addition to regional speech it can also be categorized as the idiom of a particular trade or profession, which brings it closer in definition to jargon.