design global app config GUI (issues #52 , #54 , #56 , #57)

* GUI has three tabs - one each for client , audio , subscriptions nodes
* added ConfigClient , ConfigNinjam , ConfigAudio , ConfigSubscriptions GUIs
* added add and config btns to Channel for semantics (mutex overlapping w/ expand btn)
* renamed ChannelConfig to ConfigChannel
* removed remaining LinJamConfig Value holders (issue #33) except isAgreed (issue #14)
* removed LinJamConfig::getNode() , getLeaf() methods
* removed LinJamConfig::getClient() , getAudio() , getServer() methods
implement subscriptions config feature (issue #58)

  * implemented the intrinsic subscriptions/ignore feature
  * added LinJam::ConfigureSubscriptions() method
  * added LinJam::UpdateRemoteUserState() method
  * added NJClient::MAX_USERNAME_LEN , MAX_CHANNELNAME_LEN constants
  * added NJClient::ConnectionStatus , SubscribeMode , SaveMultitrack , SaveMixdown enums
  * added NJClient::GetLocalChannelName() convienence method
  * added Subscriptions and Subscription GUI classes
  * implemented LinJamConfig::valueTreeChildAdded() , valueTreeChildRemoved() methods
  * removed Channel::renameChannel() method
implement client config feature (issue #55)

  * added NJClient::DebugLevel enum
  * added CONFIG::MIXDOWN_MODE_* and SAVE_AUDIO_ENUM_OFFSET constants
hook up audio config GUI to storage (issue #12)

* added juce audio device types constants
* added CONFIG::MAC_DEVICE_ID , ALSA_CONFIG_ID xml params and constants
* added CONFIG::DEFAULT_MAC_DEVICE , DEFAULT_ALSA_CONFIG constants