Version 0.5

Version 0.5 is mostly a refactoring release.

- upgraded cross-compiled Scala 2.11 packages to Scala 2.11.0-RC4
- changed `BooleanCancelable` into the base `Cancelable` 
  (i.e. `BooleanCancelable` is gone, with `isCanceled` moved to `Cancelable`)
- added `RefCountCancelable`, a new cancelable type that does reference counting and
  waits for release of all children before executing its callback
- renamed `Scheduler.schedulePeriodically` to `Scheduler.scheduleRepeated` and changed
  its semantics (executes with fixed delay, instead of fixed rate as before)
- moved `FutureExtensions` and `FutureCompanionExtensions` to package `monifu.concurrent.extensions`
- added `monifu.concurrent.locks` to `monifu-core-js` as implementations in which
  lock acquisition is a zero cost NOOP enabled by a macro (for source level compatibility)
- fixed `JSAsyncScheduler` in `monifu-core-js`
- optimized the increment methods in `AtomicInteger` and `AtomicLong`
- added new method `def waitForCompareAndSet(expect: T, update: T, maxRetries: Int): Boolean`
  in `BlocableAtomic[T]`
- changed `monifu.concurrent.locks.NaiveSpinLock` to be reentrant
- optimized `ConcurrentScheduler`
- optimized `MultiAssignmentCancelable`
- refactored / added more tests