[RFC] vim-patch:7.4.242 + vim-patch:7.4.243

> Problem:    getreg() does not distinguish between a NL used for a line break and a NL used for a NUL character.
> Solution:   Add another argument to return a list. (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-242

Differences:
* Instead of using `define`d CONSTANTS for the flags, I used an enum with kConstants as per our style guide.
* Defined in `ops.h` instead of `vim.h`.
* `getreg_wrap_one` seems inconsistent with the other functions in `ops.c`, so I renamed it `get_reg_wrap_one`.
* Doxygen style commenting.
* Omitted the test, but added an equivalent vroom test in the next commit.

Also, it seemed like maybe `get_reg_contents` should return a `void *` instead of a `char_u *` that is actually a `list_T *` when requested, but I made that change separate from the patch.
Alternatively we could drop the unsafe warning and just return `strlen(str)` if `c == NUL`.

Also, why does `strcnt` take `len`? That seems like something that's only necessary for `memcnt`.