Add Ticks#infinite
Added Ticks#infinite and updated the documentation where we would not accept it with the current design. At the moment vanilla only supports this for PotionEffects.
Some immediate problems are that we have no way of blocking the usage of infinite ticks in events in a nice way where we accept Ticks to modify the outcome. The event execution would explode at the implementation when it eventually call Ticks#ticks which would end up throwing IllegalStateException. Should we return Integer.MAX_VALUE or Long.MAX_VALUE instead? Or should we look at how we could easily solve the problem of being able to deny these params.
Some other alternatives that I don't quite like are that we could change the PotionEffect#duration type to Optional<Ticks> but that's quite vague. Would that imply that not specifying the duration in the builder mean that it creates a infinite one? That however could be solved with another method PotionEffect.Builder#infinite.
Adding new more concreate type like TicksOrInfinite is basically the same approach as the Optional<Ticks> one as we couldn't implement the Ticks interface or we are back at square one. Also adds more surface area for not much added clarity?