Added improved sizing support with a CGSize optional preferred size delegate method. This gives an increased level of customization to the view.