Slight simplification to CoreEventProperties

Add code to fake up an href for those entities which don't have one (categories etc). This should be ripped out of 4.0 and the values added to the db schema.

Get more consistent with indexing. All entities are indexed by href. The key is either just the href or, for events, a type + href + recurrenceid. Means changes to how we index.

Remove BwIndexKey class. Keys are now easier to handle.

Make DocBuilder more objecty. Use an internal builder field and remove the builder parameter from most methods and calls

Watch for a bad user principal and try to give a more useful error message. Allow for principal with(out) trailing "/"

Scheduler wasn't being started.