Refactor core/observe array code

Refactoring to support the ability to support Array.observe splice
change records.