Extract API code from HttpStore

## Extract API code from HttpStore

### Acceptance Criteria
1. None

### Tasks
- Remove emits from `store/http.js`
- Remove sync machine methods from `store/http.js`.
- Move `store/http.js` to `http/gateway.js`
- Move `store/http-error.js` to `http/error.js`
- Create new `store/http.js` that extends `http/gateway.js` but doesn't add any of its own code (for now).
- Move `store/base.js` to `lib/extendable.js`and rename the exported `Store` to `Extendable`.
- Delete `lib/sync-machine.js`

### Additional Notes
- None