HttpSession notification fixes

HttpSession.removeAttribute(...) should not trigger attribute removed event if attribute did not exist.
HttpSession.setAttribute(name, null) should trigger valueUnbound binding event.
HttpSession.setAttribute(name, value) should not trigger any events if value == old value.