Refactor the main API to split Loop and Vaxis types. This enables the core Vaxis type to be more easily referenced in other types, since it doesn't require a comptime type parameter. This will make the switch to the zg unicode library easier.