Adds an argument handler for an option backed by an enum.

Adds an abstract base class that makes it easy to define a
handlers for otion type where the option values are enum values.

Refactors the code in arg handlers for JsInterop, LogLevel,
MethodNameDisplayMode, Namespace and Style.

Change-Id: I0d2465f6947824070bbb1cd582847c4b3b9f3b98