*Breaking*: Renamed `@DiscardObjectAfterInvocation` to `@OnlyOnce`
*Breaking*: Renamed `@MayModify` to `@Modifies`. The latter has optional fields to describe when modification happens.
*Breaking*: Split `@Reentrancy` into `@Reentrant` and `@NotReentrant`
Javadoc updates. No functional changes.
Added `FAST` and `SLOW` to enum in `@ExpectedPerformanceProfile`
*Breaking*: `@HasSideEffects` can no longer be applied to fields and parameters.
*Breaking*:  Renamed `@OwnershipTransferredToTarget` to `@TakesOwnership`
Added some descriptions and motivations behind the changes.