core/properties: allow custom TUN/TAP device names

OpenVPN offers '--dev' option for specifying interface name. It accepts "tun"
or "tap", or a custom interface name. The device type (TUN vs. TAP) is either
guessed from the interface name, or it can be provided with '--dev-type'.

This commit changes the code to accept custom names for '--dev' and introduces
support for '-dev-type'. The backwards compatibility has been preserved.

Links:
  http://openvpn.net/archive/openvpn-devel/2003-06/msg00000.html
  http://www.depesz.com/2010/12/06/named-interfaces-for-openvpn-and-cisco-vpn/
ui: allow specifying device type and a custom name for TUN/TAP devices
ui: verify that TUN/TAP device name is a valid interface name
Merge changes for TUN/TAP device name and type

Now it is possible to specify custom virtual device names and set type
explicitly.