Added closest-first sorting improved FLOOR_OFFSET

Button:
Added a "closest-first" selection method for buttons, when standing in
multiple button areas, the closest button will always be selected first,
and if the return value of OnButtonPress is 0 (which allows the loop to
continue) the next button will be the second closest and so on. This is
currently limited to the closest 8 buttons. Big thanks to Slice for his
md-sort include which is now a dependency for SIF/Button.

Item:
Increased the FLOOR_OFFSET value and used this as Z offset values where
it should have been, this now drops items actually flatly on the ground
plane the player is standing on (assuming it's flat) rather than a few
centimetres above.

Core:
Added sif_Distance2D used in the Button closest-first selection code.