Retain the shadow color

Can cause crashes otherwise
Allow items to be added after being initialized without items
Add a stroked line at the top
Make the top and bottom stroke color configurable
Avoid calling UIGraphicsGetCurrentContext() again

the context variable already points to the current context
Use the appearance proxy to set the stain view background

Allows changing it by the caller via UIAppearance
Make the inner stroke color configurable
Expose the segment views and the stain view

Make them readonly properties, so their look can be customized