Split Editor API into essential and extended methods

This splits methods from the current API into two new stable APIs, the essential API and the extended API. The goal of this PR is to bifurcate the current API, so we should limit comments to:

1. Method X should be moved to the extended API.
2. Method Y should be moved to the essential API.

Once/if we end up agreeing on this PR, I suggest we open a new PR that will focus on adding or renaming methods on the cursor API.