Color palette allocation by user

closes #23
closes #20