Robust input value

This changes address issue described by @dimier.

In the past input's value always reflects current widget value. This pr allows input's value change only in two cases:
1) new object loaded successfully
2) user removes current object by hand (widget is clearable)

In case, described by @dimier, when widget has "bad value" (malformed uuid or network error was happened) as initial input value, the user see the problem (widget says "Can’t load info" or "Incorrect value"). She can ignore it and save form without changing file (bad value will be returned to the application) or upload a new file. May be in case of "clearable" we should also show "remove" button to allow user to remove bad value.

Other cases:

* Widget is empty, user chooses a new file and network error happens. Value will be empty, like with old behavior.

* Widget already has uploaded file, user chooses a new file and network error happens. Old value will be saved in input, widget will show error. User will not be able to see or remove old file from widget. Looks like a issue