collection/array: added increase_size().
resource: simplified resource handlers and package resource streams.¹

resource:
	added ResourceStreamLock class;
	added ResourceValue to store alternate value types without casting.

resource/resource_handler:
	func_load: take ResourcePackage and ResourceMetadata to identify & open resource stream.

resource/resource_manager:
	delegated resource stream handling to resource handlers.

resource/resource_package:
	open_resource_stream():
		take ID instead of node;
		removed nullptr return clause (fatal error);
	added resource_metadata();
	tightened constraints and improved error messages for resource stream interface.

doc: tidy.

1: The significant consequence is that handlers can now call
resource_manager::load_resource(). Before that was not possible
(apart from the resource being in a different package) as the
resource stream would always be open within that scope. The resource
value is still not stored until the handler load() returns, however.
test/resource/manager: updated to resource value changes.