Add core/request module

Makes XHRs easier by wrapping a composable, promise based API