Fix ignorant handling of signs placed by others

It appears to address numerous amount of issues, including: #812, #801, #887.

Proposed solution uses dummy sign which is placed before updating
diagnostic signs and unplaced afterwards, which eliminates any
flickering.

It's common solution that can be found in some vim plugins that manage
signatures.
This looks like a good place to use `namedtuple` from `collections`.