Validate empty dictionary construction

Rework the dialyzer type system for tighter specifications
of valid dictionary types for pure_binary attributes and
values. Add PropEr testing of dictionary types and sizes
that are created using epode_dict:new/2.
Validate non_binary dictionary constructors