frontend: Console code refactor and cleanup

Purpose of this patch
 - remove duplicated console code
 - minor refactoring of consoles
 - make the code ready for simultaneous SPICE + VNC consoles.

major changes:
 - introduced interface VmConsoles (+ implementations) that allows
   relative simple access and control over consoles of a single vm
   (selecting active console model, connecting to console, reading
   state). This class should be used for any manipulation with consoles
   of a VM.
 - concept of 'DefaultConsoleModel' and 'AdditionalConsoleModel' is
   thrown away. instead frontend remembers VmConsoles implementation for
   every vm.
 - most utils classes deleted in favor of VmConsoles
  - removed ConsoleManager - used for connecting to console, replaced by
    VmConsoles
  - reduced ConsoleUtils - now it only contains wrapper methods to wrap
    Configurator. It should contain only methods that do not need actual
    vm/console state
  - removed UserSelectedDisplayProtocolManager (switching between
    SPICE/VNC and RDP), in favor of VmConsoles
  - simplified ConsoleModelsCache
  - removed HasConsoleModel interface in favor of VmConsoles
  - removed ConsoleSelectionContext class since if someone wants to
    query console state, VmConsoles should provide fresh data to them
 - renamed IUserPortalListModel to AbstractUserPortalListModel since
   it's not interface but abstract class
 - removed WebAdminItemModel in favor of VmConsoles

Change-Id: Ie6d7cb5e457410e0e76a12f6602b44132cb913c9
Signed-off-by: Frantisek Kobzik <fkobzik@redhat.com>