Introduce constraints and name mapping to source plugin database.

- Using default values now instead of NULL to signal empty field
  because NULL values are considered distinct in the context of
  UNIQUE table constraints in sqlite
- Introduced new table for mappings from sid, game, server and team
  to channel name i preparation for new functionality
- Updated and expanded unit test
Source plugin now remembers channel names of controlled channels

- validateChannelDB and channel state changes now maintain
  mappings database
- Name mappings are used during channel creation