Do not create `subviews` until they are used.

A lot of empty `subviews` arrays clutters debugger. And considering we now have regions, subviews are not needed 100% of the time. This shall delay initialising them until they are actually used. Also, slight perf gain.

Also, do not throw error if `initialize` was not redefined, not needed now.
Use indexOf isnt -1 instead of > -1 for consistency.
Merge pull request #496 from chaplinjs/topics/subviews

Do not create `subviews` until they are used.