shell: Remove SHELL_SURFACE_MAXIMIZED and use maximized state.

Use the newly added maximized state to implement the maximized surface
type.

Change each place where a surface type change was in place to check for
the maximized state too.

Setting the surface type to any type should unset the maximized state
flag, to keep the same behavior as before.
shell: Remove SHELL_SURFACE_FULLSCREEN and use fullscreen state.

Use the newly added fullscreen state to implement the fullscreen surface
type.

Change each place where a surface type change was in place to check for
the fullscreen state too.
shell: Implement state set functions.

The maximized and fullscreen state flags were added, but used only by
the original shell_surface_set_maximized and
shell_surface_set_fullscreen functions, keeping the previous behavior,
removing any other flag that is not the requested one.

Now new functions were added that will only set that specific flag,
allowing both states to be used at the same time.