Set value of the underlying input

The user can set the value of the underlying input, what triggers
refresh. This behavior can be controlled by enableSetValue option.
If true, changes of the underlying input reflected on widget.

I refactored the refresh method during the development, there were redundant calls of _renderTags function. 

Added some tests as well to cover the new feature.