redesign the allocator framework
The current allocator frame work must be redesigned to address #2316: currently the allocator engine is a server property (alloc_engine_ field of DhcpvXSrv classes) where it should be more per subnet or per pool.
- Dhcpv4Srv and Dhcpv6Srv classes have a alloc_engine_ field
- the AllocEngine class has an Allocator sub-class with the needed method e.g pickAddress, some XxxAllocator classes (only the IterativeAllocator has code) and a map of Lease type x AllocatorPtr so in fact the allocator can be per Lease type (V4, NA, (TA,) PD)
As pools have a Lease type it seems easier to go to a per pool allocator. Note the between pool iteration can stay has it is now (start from the last allocation) or be designed too. In all case this loop and its body have to be split.