ensure that observers will  not override original object, ensure that multiple entries for the same observer does not appear in the observer or computed maps for a kind

Enyo-DCO-1.1-Signed-off-by: Cole Davis <cole.davis@lge.com>
add unit test for duplicate entries in computed and observer properties

Enyo-DCO-1.1-Signed-off-by: Cole Davis <cole.davis@lge.com>
Merge pull request #484 from enyojs/post-9-updates

Fix issue where multiple observers with same name were registered on objects through the inheritance mechanism

Reviewed-By: Ben Combee (ben.combee@lge.com)
Replace replace() calls with enyo.trim()

The new observer and computed code uses strings of space-delimited
names instead of arrays for speed and memory savings, but the code
requires frequent operations to strip off spaces that may have
accumulated at the start and end.  ES5 provides a trim() method for
this, and tests using jsperf show it's twice the speed of the
equivalent replace() call in V8 and JSCore.

This also fixes latent bugs, as many of the replace() calls were
missing the global operator to strip off spaces both at start and
end.

Enyo-DCO-1.1-Signed-Off-By: Ben Combee (ben.combee@lge.com)
Merge pull request #485 from enyojs/use-trim-when-available

Replace replace() calls with enyo.trim()

Reviewed-By: Cole Davis (cole.davis@lge.com)