fix compilation errors on Visual Studio

I have separated the Visual Studio build errors from cmake (https://github.com/protobuf-c/protobuf-c/pull/155).

Here is the patch that allows compilation on Windows. It fixes 3 different (but simple) errors with following reasons:
  - use _inline for non-c99 msvc compiler
  - use char* instead of void* in pointer shifting
  - on non-gnuc family compilers DEPRECATED macros was undefined

(see also https://github.com/protobuf-c/protobuf-c/issues/168)
I think we should use `(uint8_t *)` instead of `char*` to not imply anything about the underlying type.

We can also use the STRUCT_MEMBER_PTR macro as follows:
```c
void *array = STRUCT_MEMBER_P(*(void **) member, siz * (*p_n));
```
The only issue with that approach is that `STRUCT_MEMBER_P` was really designed for offsets into message structures, but the logic is the same.