Add maxmemory_policy to INFO output

Also refactors getting human string values from
the defined value in `server.maxmemory_policy`
into a common function.
Add cached total system memory to INFO output

There is no standard cross-platform way of obtaining
system memory info, but I found a useful function
convering all common platforms.  I removed support
for uncommon Redis platforms (windows, AIX) and left
others intact.

For more info, see:
http://nadeausoftware.com/articles/2012/09/c_c_tip_how_get_physical_memory_size_system

The system memory info is cached on startup, but some systems
may be able to change the amount of memory visible to Redis
at runtime if Redis is deployed in a VM or container.

Also see #1820
Added <count> parameter to SPOP:
spopCommand() now runs spopWithCountCommand() in case the <count> param is found.
Added intsetRandomMembers() to Intset: Copies N random members from the set into inputted 'values' array. Uses either the Knuth or Floyd sample algos depending on ratio count/size.
Added setTypeRandomElements() to SET type: Returns a number of random elements from a non empty set. This is a version of setTypeRandomElement() that is modified in order to return multiple entries, using dictGetRandomKeys() and intsetRandomMembers().
Added tests for SPOP with <count>: unit/type/set, unit/scripting, integration/aof
--
Cleaned up code a bit to match with required Redis coding style
Cluster: Notify user on accept error

If we woke up to accept a connection, but we can't
accept it, inform the user of the error going on
with their networking.

(The previous message was the same for success or error!)
Merge branch 'improve/INFO/add-system-memory-size' of git://github.com/mattsta/redis into unstable
getMemorySize() moved into zmalloc.c with other low level mem utils.

See issue #2218.
Add info as requested by the original getMemorySize() license.
Merge pull request #1582 from mattsta/add-error-mention-to-error-condition

Cluster: Update accept error to mention error
Merge pull request #2215 from advance512/spopWithCount

SPOP optional count argument. (issue #1793, supersedes pull request #1803)
Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get negative count argument due to signed/unsigned mismatch.

setTypeRandomElements() now returns unsigned long, and also uses unsigned long for anything related to count of members.
spopWithCountCommand() now uses unsigned long elements_returned instead of int, for values returned from setTypeRandomElements()
Merge pull request #2224 from advance512/spopWithCount

Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get ...
Fix adjustOpenFilesLimit() logging to match real state.

Fixes issue #2225.
Improve redis-trib replica assignment

This tiny bit of code has gone through so many revisions.  Hopefully
it's more correct now.

Fixes #2204
Following @mattsta's friendly review:
  1. memory leak in t_set.c has been fixed
  2. end-of-line spaces has been removed (from all over the place)
  3. for loops have been ordered up to match existing Redis style (less weird)
  4. comments format has been fixed (added * in the beggining of every comment line)
Fixed memory leaks in rdbSaveToSlavesSockets()
Merge pull request #2229 from advance512/spopWithCount

Memory leak fixes (+ code style fixes)
Add 'age' value to SENTINEL INFO-CACHE
Merge pull request #2234 from mattsta/feature/sentinel-info-cache/age

Add 'age' value to SENTINEL INFO-CACHE
Merge pull request #2227 from mattsta/fix/trib/assignment/master-replica

Improve redis-trib replica assignment
INFO loading stats: three fixes.

1. Server unxtime may remain not updated while loading AOF, so ETA is
not updated correctly.

2. Number of processed byte was not initialized.

3. Possible division by zero condition (likely cause of issue #1932).