Update to how plug-ins should handle custom map objects

As an example, I've updated the FlagStay plug-in to support the syntax other map objects use instead of "bbox" and "cylinder" which require some calculation and are not straight forward to new map makers. Aside from introducing a new syntax, I've added support for rotating rectangular zones.

I'd like to create a class in the API with this code in order for other plug-ins to simply extend it and the plug-in dev will no longer have to write the logic to check if a player is inside a box or not.