Introducing "asExpired" flag to requests.

This new flag aligns with existing "asLocal", "asRemote"
flags. While experimenting with these, some
interesting cases were discovered: in some cases
nexus does not behave as "accumulating proxy" but rather
removes local cache content when remote is removed
(asRemote case, see UT).

Added UT that covers asLocal, asRemote and the newly added
asExpired cases for now, to have their functionality
covered.

This new logic will be used by whitelist implementation to keep
WL prefix file "in sync" with remote in much simpler way than
expire+refetch (as expire is actually "walker" + retrieve when
another retrieve is about to happen).
Added last-modified header to responses.

It turns out that test server was simply omitting last-modified
headers, so now explicitly setting it to be able to simulate
cases like expired but remote not newer and expired and
remote is newer.
Merge remote-tracking branch 'origin/master' into as-expired-flag
Extended UT to cover all cases.

* localOnly flag
* remoteOnly flag
* asExpired flag
* both localOnly and remoteOnly flags combined
Merge remote-tracking branch 'origin/master' into as-expired-flag
Merge remote-tracking branch 'origin/master' into as-expired-flag
Not allowing more than 1 flag to be set.

Only one of the "localOnly", "remoteOnly" and "asExpired" might
be set simultaneously. If set, IllegalArgumentException
is thrown.

UT modified, removed the offending test method that was testing
the "local and remote set" cases, as they not really made
sense and became wrong with this change above.

Added tests for IAE being thrown for various flag combinations.
Merge pull request #718 from sonatype/as-expired-flag

Request flags