Implement user_map_page.

Add error handling to user helpers.
Add proper page invaliation on both kernel and user functions