Add variable matcher

Added support for types, specified in variables. 
Like:


```erlang
-type colors() :: red | blue.
check_color(Color) ->
    Type = colors,
    true = sheriff:check(Color, Type). % instead of sheriff:check(Color, colors)
% So now it can be:
check_type(Val, Type) ->
   true = sheriff:check(Val, Type).
```

Works for local types, records and external types.
Not works for inline types