Add static_assert definition to _Static_assert

Signed-off-by: Alex Smith <alex@alex-smith.me.uk>
Improve safe user memory access functions

Made a few improvements to the implementation of the functions, and added
new read_user() and write_user() macros which can be used to access simple
integer types without having to use memcpy_{to,from}_user() on them.

Signed-off-by: Alex Smith <alex@alex-smith.me.uk>