[RFC] Move defines from vim.h - phase2

Move more functionality from vim.h to header or c files depending on what makes sense.  Breaking up vim.h will eventually allow the removal of the vim.h include at the top of every file, improving readability and build performance.