Add inteligent case-folding

This patch adds inteligent case-folding. That means that if the skeleton doesn't contain capital letters it ignores case, but if there are any capital letters (`[A-Z]`) in the skeleton it will turn on case-sensitive search. (emacs by default uses case-insensitive search).

This is especially handy in camel-case langauges where identifiers are named "usingCamelCase". In this case, uCC would expand to this identifier without matching for example "usecache" or anything else matching `u.*?c.*?c`. In most of the cases, the you can get a unique match or at most couple variants.