Added new behavior for reserving slots

This branch introduce 2 new features: max_reservation_per_user  &
max_reservation_per_cell. Since it is very different from the original
behavior, it is a branch