#2930 Reference count sessions in WebFilter.

- Rather than storing Boolean.TRUE for the session ID in the cluster
  map, store a reference count
- Replaced get/put calls with executeOnKey and EntryProcessors to
  keep network hits low
  - AddSessionEntryProcessor is used to produce the initial reference
  - ReferenceSessionEntryProcessor increments the reference count when
    a new node looks up a session and creates a local "copy"
  - DestroySessionEntryProcessor decrements the reference count and
    returns Boolean.TRUE or Boolean.FALSE to indicate whether there
    are any further references
  - All new EntryProcessors implement IdentifiedDataSerializable for
    speed
- Renamed InvalidateEntryProcessor->InvalidSessionAttributesEntryProcessor
  and convert it to IdentifiedDataSerializable
- Updated WebFilter.init to store the WebFilter instance in an attribute
  on the ServletContext so that SessionListener can look it up
  - This allows WebFilter.destroyOriginalSession to be an instance method
    which, in turn, allows the session maps to be non-static
  - Having the maps be non-static makes the various WebFilter tests more
    meaningful because they more accurately simulate two separate servers
    accessing clustered session state
    - Otherwise, while both servers have their own WebFilter instance,
      those instances are sharing the same static session maps
- Added a unit test which verifies that session data is removed from the
  clustered map when the session has timed out on all referencing servers
- Reworded some log messages to make them more clear/useful
- Updated copyright dates from 2013 to 2014
added StripedExecutor to the WanReplicationService to maintain order by dispatching same partition packets to the same thread.
 Marks a randomly failing test as ProblematicTest. Cleanup of test class (get rid of warnings and unwanted final variables).
Fixed the failing test by using assertTrueEventually as recommended by ahmetmircik.
#2930 Review rework for #2931.

- Set an explicit timeout on WebFilterSessionCleanupTest
- Corrected Checkstyle errors in SessionListener and WebFilter
  - Split WebFilter.createNewSession into multiple methods to reduce
    its complexity
- Added more class-level and package-level documentation
# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
# On branch 2930-bturner-reference-count-sessions
# Your branch is up-to-date with 'origin/2930-bturner-reference-count-sessions'.
#
# Changes to be committed:
#	modified:   src/main/java/com/hazelcast/web/SessionListener.java
#	modified:   src/main/java/com/hazelcast/web/WebFilter.java
#	modified:   src/main/java/com/hazelcast/web/package-info.java
#	modified:   src/test/java/com/hazelcast/wm/test/WebFilterSessionCleanupTest.java
#
Merge pull request #2931 from bturner/2930-bturner-reference-count-sessions

#2930 Reference count sessions in WebFilter.
Reviewed minor updates
QueueIterator::remove throws UnsupportedOperationException
some updates to data affinity doc
Merge pull request #2953 from ahmetmircik/doc/3.3/dataAffinity

Some updates to data affinity doc
review updates
Merge pull request #2948 from eminn/iterator/remove

QueueIterator::remove throws UnsupportedOperationException
Spaces added for better looking PDF
New IMap features headline information added
Added new lines for better looking PDF
Formatting correction.
Forced multiple line breaks between different files while merging them to make markdown separation between chapters
fixes #2659
ceils nanosecond values to 1 ms to prevent no eviction case
fixes #2659
ceils nanosecond values to 1 ms to prevent no eviction case
small doc fixes