Fix for Codeplex-393 Html.Raw used as attribute value in Razor is still
being encoded

The attribute writer has eagerly ToStringing the HtmlString returned by
Html.Raw. The right thing to do is just pass in the object and let it
figure out what to do. It flows into HttpUtility.Encode, which knows how
to handle HtmlString.

I added a test for this and cleaned up the control flow a bit.