=act #3557 Improved semantics for BoundedBlockingQueue

- Blocking methods lock interruptibly
- drainTo can no longer drain to the backing
- drainTo/clear now calls signalAll instead of signal

Also made some other changes to make the code nicer (I hope!).
+act #3592 Read stash-capacity from mailbox config
+con #3551 Buffer messages in cluster client

* Stash when establishing connection to receptionist
=act #3593 Turn of serialize-messages and make receive polymorphic
!osg Updating Aries dependencies

Update aries.blueprint to 1.1.0
Update aries.proxy.impl to 1.0.1
!con #3597 Remove hand over data message in cluster singleton
=doc #3596 Add paragraph about Agent locality

* Based on discussion on akka-user, Sept 6-9 2013. It seems appropriate
to mention that Agents are not remoteable, so that naive users (like me)
know to design for that.
* This change has not been locally built with Sphinx, but seems to be
small and safe.
=pro #3569 Remove experimental label from cluster pom.xml
!clu #2307 Allow transition from unreachable to reachable

* Replace unreachable Set with Reachability table
* Unreachable members stay in member Set
* Downing a live member was moved it to the unreachable Set,
  and then removed from there by the leader. That will not
  work when flipping back to reachable, so a Down member must
  be detected as unreachable before beeing removed. Similar
  to Exiting. Member shuts down itself if it sees itself as
  Down.
* Flip back to reachable when failure detector monitors it as
  available again
* ReachableMember event
* Can't ignore gossip from aggregated unreachable (see SurviveNetworkInstabilitySpec)
* Make use of ReachableMember event in cluster router
* End heartbeat when acknowledged, EndHeartbeatAck
* Remove nr-of-end-heartbeats from conf
* Full reachability info in JMX cluster status
* Don't use interval after unreachable for AccrualFailureDetector history
* Add QuarantinedEvent to remoting, used for Reachability.Terminated
* Prune reachability table when all reachable
* Update documentation
* Performance testing and optimizations
Merge pull request #1701 from akka/wip-2307-reachable-patriknw

!clu #2307 Allow transition from unreachable to reachable
Merge pull request #1720 from jducoeur/master

=doc #3596 Add paragraph about Agent locality
Merge pull request #1713 from akka/wip-3592-stash-capacity-from-mailbox-conf-patriknw

+act #3592 Read stash-capacity from mailbox config
Merge pull request #1721 from akka/wip-3569-cluster-pom-experimental-patriknw

=pro #3569 Remove experimental label from cluster pom.xml
=clu #3498 Optimize ClusterHeartbeatSender
=clu #3600 Disable Cluster assertInvariants checks by default

* asserts can be enabled by system property 'akka.cluster.assert=on'
Merge pull request #1630 from gakesson/master

Improved semantics for BoundedBlockingQueue
!rem, clu, mul #3154 Upgrade protobuf to 2.5.0 and add an SBT task

* Added an SBT task to compile protobuf files with protoc
* Upgraded protobuf to 2.5.0 which is the current stable
=act #3602 report `Connected` only when connection attempt was successful

Before this change, a client connection was always instantly reported as
`Connected`, even if the endpoint would never respond at all.

The reason is a weird behavior of OP_CONNECT and SocketChannel in the
JDK (observed in Linux):
 - a channel is always connectable before the connection is attempted
   (`channel.connect`). Selecting for OP_CONNECT before the `connect`
   call will instantly report connectable
 - even worse: after OP_CONNECT was reported true, also `finishConnect`
   will always return true, even if the connection wasn't yet established.
   That's probably the case because `finishConnect` is internally implemented
   depending on previous epoll results (on Linux).
+con #3578 Aggregator contribution

(cherry picked from commit ea3d9fd8a188bc5534f31ca0ba57751d01be3b66)
Merge pull request #1718 from akka/wip-upgrade-osgi-aries-ban

!osg Updating Aries dependencies