Create and return a new booking from a spot specified by id. - [x] An authenticated user is required for a successful response - [x] A user is only authorized to create a booking if they do NOT own the spot - [x] New booking exists in the database after request - [x] Booking data returned includes the `id`, `userId`, `spotId`, `startDate`, `endDate`, `createdAt`, and `updatedAt` - [x] Error response with status 404 is given when a spot does not exist with the provided `id` - [x] Error response with status 403 is given when a booking already exists for the spot on the specified dates