initial changes, in keeping FlagInterface in sync with the Flag entity.

Hi, This is just  an initial scan of the Flag Entity and its FlagInterface, with a view to keeping them in sync.

Nothing controversial I have just moved a few function comments from the entity into the Interface. and made sure that every custom entity function has an definition  in the interface.

To my mind this has exposed a few things ... but I will raise them in the appropriate issue, so they can be debated properly.

Anyway I hope you find this helpful.