Future and Promise classes

Neither the "Promises", "AnyEvent::Promise" nor "Future" CPAN modules are
functional enough for me. Sleipnir::{Future,Promise} have almost the same
interface than scala.concurrent.{Future,Promise}, and are as asynchronous as
them.

This API is inspired by:
    - (mostly) scala.concurrent.Future, as described by SIP-14*;
    - (for the "collect" function) the Promises module on CPAN.

(* http://docs.scala-lang.org/sips/completed/futures-promises.html)

One may use their documentation (especially Scala's) until Sleipnir has its
own. Here they are:
    - http://www.scala-lang.org/api/current/index.html#scala.concurrent.Future
    - https://metacpan.org/pod/Promises#EXPORTS
MwAPI do not actually run &login/&logout if already logged in/out
MwAPI::PartialRequest to simplify Requests with variable parameters
remove useless "id" attribute from Ressource (not totally sure)
Ressource::Listener::{Stdout,Ignore} to test ressources
Future: add a blocking 'result' method, _has_finished becomes is_completed
Sleipnir::Future::from_condvar transforms existing AE::CondVars into Futures
Request values are now always ArrayRef[Str]; Request overloads '""'
partialize/with/without: Request/PartialRequest more easily used together
(minor) Future: run and_then callbacks after success/failure callbacks
add Sleipnir::Iterator

Sleipnir::Iterator's goal is to make iteration over MediaWiki's
"action=query&list=..." requests simpler (by using the iterator abstraction)
and faster (by using Futures).

Iterators are actually faster (than a regular "fetch then walk through the
list then fetch then ..." method) only when the '*limit' param is set to a
large value (ideally "max"). Otherwise, local processing is so much faster
than the network that blocking "waits" happen anyway (at least these "waits"
are shorter than those which happen without iterators).