Warns a user when specifying a VTEP name.

This patch introduces ReadOnlySingleAttr, which throws a newly defined
UserException when a user attempts to set a value to a read-only
attribute, E.g. a VTEP name. When CLI receives a command that attempts
to set a read-only attribute, it'll abort the command execution and go
back to the command line evaluation loop.

Fix MN-2510
The (unimplemented) 'writeable' attribute in the base Attr class was meant for this purpose. The engine was meant to check this attribute before calling the setter and throw an exception as you are doing, but it was never implemented.

With this in mind I'd suggest one of two options:

a) Keep your patch as is. But remove the 'writeable' attribute all across, since it was never implemented.

b) Keep your exception, but remove the ReadOnlySingleAttr and implement through the 'writeable' attribute. The advantage of this is that it works for all the attribute subtypes (enums, etc).