Introducing accept conditions for tokens - #2

Accept conditions can be specified while declaring tokens. It affects
the way noice reduction works and producing better results with noice
reduction.

First stage of noice reduction will remove all unacceptable tokens.
Accept conditions are specified based on the location in which token
appears in the string.

This commit also removes libvarnam's ability to generate consonant-vowel
combinations. We offload that work to varnamc compiler. This is more
generic and more user controlled so that lot of unnecessary weird tokens
won't be generated