Allow gap before first non-Lisp pseudovec member

Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2019-04/msg00259.html
Solution suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2019-04/msg00282.html
* src/buffer.h (BUFFER_LISP_SIZE): Simplify by using PSEUDOVECSIZE.
(BUFFER_REST_SIZE): Simplify by using VECSIZE and BUFFER_LISP_SIZE.
* src/lisp.h (PSEUDOVECSIZE): Base it on the last Lisp field,
not the first non-Lisp field.  All callers changed.  Callers
without Lisp fields changed to use ALLOCATE_PLAIN_PSEUDOVECTOR.
(ALLOCATE_PLAIN_PSEUDOVECTOR): New macro.
1 job for master in 60 minutes and 2 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Test
failed #1270
test-all

01:00:02

 
Name Stage Failure
failed
test-all Test The script exceeded the maximum execution time set for the job
make[3]: *** [lisp/eshell/eshell-tests.log] Error 1
ELC lisp/faces-tests.elc
GEN lisp/faces-tests.log
ELC lisp/ffap-tests.elc
GEN lisp/ffap-tests.log
ELC lisp/filenotify-tests.elc
GEN lisp/filenotify-tests.log
Pulling docker image gitlab/gitlab-runner-helper:x86_64-f100a208 ...
ERROR: Job failed: execution took longer than 1h0m0s seconds