Profiles added to schema, channel list shows which profile a channel is assigned to

In the original installation, each language production team had its own server and
had enough channels to warrant this. Now we have some languages with only a handful
of channels, yet they still require full production facilities, isolated from the
other production teams.

This update extends the Schema to support 'profiles', which will be used to
filter/restrict which channels are seen by each production team. Note this
restriction is not a security measure - it's just for practical purposes, so
that the different language production teams can have their own 'hotkey' buttons
and are not distracted by another team's GPI events.

This patch makes the channel list display which profile each channel is assigned to,
and uses CSS to make the channel list a little prettier.
Edit Channels now allows profile to be changed and uses CSS to look more beautiful
Player and index pages accept profile_code argument to filter displayed channels/events

So browsing to /ui/player/french will only display channels and events assigned to the
profile with profile_code='french'
Assign clips channel filters determined by profile in use
Assign clips screen only displays clips corresponding to active profile
User upload clips are assigned a profile_id
Controller::Clips - fix ambiguous key warning
Displayed button box only shows hotkeys for current profile
Clips now saved in profile subdirectory
delete clip now takes account of clips being located in profile subdirectories
Update create_tables to refelect new Schema v2, incorporating profiles
Use sessions to pass around profile data

Was previously trying to avoid session data and make all requests
stateless, but it was getting silly having to pass around
profile_id or profile_code in urls, parameters or post data, and
also doing lots of profile name/code/id look-ups, so
I've given in and am converting the code to use sessions.

This patch sets the session variables in the root index method,
which then re-directs to the player. The player now displays the
current profile name.
player page updated to take advantage of profile data stored in session
Channel naming uses profile data from session. labels.ini now in profile subdir
remove redundant playout_labels_ini_path from config file
Clip upload uses profile data from session store
After assigning new clip to hotkey, don't return to player, but stay on hotkeys
buttons.ini file now created within profile directory
removed redundant playout_buttons_ini_path element from example config file
Add front page to choose language profile to use

http://[server]/ will give the selection page
http://[server]/[profile_code] will bypass the selection page and load the specified profile