Persist feeds

- Adds Feed interface
- Adds abstractEntity.addFeed; if added like that then feed is persisted
- Adds EntityInternal.getFeedSupport(), which has getFeeds(), addFeed(), removeFeed() and getAllFeeds()
- AbstractFeed.poller: make private, with getter; and make transient

Note the persistence of feeds is backwards compatible (i.e. old code will not persist its feeds, so will not end up with duplicates or with errors for anonymous inner classes that cannot be serialized/deserialized). One has to change the entity impl to do `abstractEntity.addFeed(feed)` for it to be persisted.

We need to look at how things like feeds are enabled. Currently `feed.start()` causes it to immediately start polling. We need to think about that more - can we register these things earlier (e.g. during `init()`) and only have then enabled at the right time? There is a `onlyIfServiceUp` option, but feels like there should be a better way to ensure disabled until the right time (e.g. what if this feed is involved in determining serviceUp?).