Initial support for visibility index.
Adds CollectionUtils.recursiveIterable API.
Fixes State.getVisibilityAwareTypeId sometimes returning the wrong UUID.
Adds the ability to query for visibility hidden items.
Adds support for visibility flag in type-specific indexes, not just global ones.
Changes State.getVisibilityAwareTypeId to only use the last visibility index value to change the type ID so that its behavior is more predictable when using multiple visibility indexes.
Makes sure that the state status is retained when recreating the object because of the visibility type ID.
Adds HtmlWriter delegate getter/setter.
Renames most HtmlWriter methods to be prefixed with write so that its meanings are more clear when it's used in another class (e.g. subclass).
Fixes all warnings.
Hides the HtmlWriter.Area class since it's really internal.