Adds a developer error message if an SC.View is created using an existing layerId.  This should prevent some weirdness from occurring.
Fixes a regression with SC.CollectionView that occurred after a previous fix to remove a view DOM leak.  SC.CollectionView previously created a view with the same layerId as the view to be replaced before replacing it, which only worked because of some weird logic external to the CollectionView that used to prevent a view from being able to find its layer if it didn't have a parentView (which was also the cause of a leak because the layer might still exist in the DOM).  In any case, having two views use the same layerId at the same time is a bad idea.

So instead we essentially use removeChild().insertBefore() rather than insertBefore().removeChild() (i.e. replaceChild()).
Cleans up SC.CollectionView a la jshint.  Also removes a number of declared, initialized yet unused variables.