Enforcing that _computeLayout must be called before _render

For @tkimcoop , I think is mostly regression tests aimed at animations.

Fixes #867
I don't like this change. It's adding special complexity to the codebase (that 0-sized components will never render) without it being clear at all in the code base why this makes sense. the fact that it is enforcing that compute layout is not called before render in certain circumstances is entirely obscure, so it's likely that someone will well-intentionedly come along later and say "huh, let me remove this cruft from the codebase that doesn't make any sense" and then it will produce weird bugs that they won't notice for a long time because it is obscure and because there is not any unit testing or documentation.

if you want to ensure that render is not called before computeLayout, don't hack it in. be explicit: add a `_wasLayoutComputed` flag and then check if that flag was tripped. it adds another line of code, but less complexity.