Remove redundant Bounds object creation and fix bugs in morph bounds handling in defineShape

Creating typed versions of `fillBounds` and `lineBounds` only makes sense if we want to use `Bounds` methods on them. Which we only want if a morph shape is parsed. Otherwise, they'll just immediately be turned into untyped versions again.
Guard all asserts with `release ||`

To enable at least slightly better performance testing in the inspector.
Merge pull request #1393 from tschneidereit/nat

Optimizations