BHV-15157: Prevent duplicate styles from being set before node is rendered in DOM.

### Issue
It is possible to set rules that involve the same CSS properties on a node before it has been attached to the DOM, resulting in duplicate rules being applied upon DOM attachment.

### Fix
We use a mechanism similar to what is used to remove existing rules, to detect an existing rule involving the same property, and overwrite it. Additionally made a few related fixes along the way to prevent double semicolons and leading spaces from appearing in the style attribute.

Enyo-DCO-1.1-Signed-off-by: Aaron Tam <aaron.tam@lge.com>