well, usually there are pre-defined color sets (like in batrik), so you save set name and then on hook_preprocess_page you chose which css to include.
So either this or you can add inline css styling using the same function drupal_add_css.
As for how to save this for each user, you can add extra field to user profile at Home » Administration » Configuration » People » Account settings
and then programmatically update it with needed value - example below, details here.
$existing = user_load($uid);
$edit = (array) $existing;
$edit['field_somefield']['und']['value'] = 'blah';