Generate colors based off text

Instead of randomly generating a predefined set of colors, generate the
colors based off the text entered.  One way of doing this was switching
to the HSL color space, which makes the generation a bit easier to
program.

Update the APIs to align with the model being sent between them.  Also
update the styling a bit now that we have lots of colors.
Document the code a bit more

Add some more documentation within the code to better explain what's
going on -- make it easier to follow.