TDD the readlater model basic actions

TDD a list of items to form the model for the readlater application.
In this phase, we define the basic actions to retrieva all the items, add
and remove items and find one item based on its id.
Use `should.js` to express assertions

Use the library `should.js` to better express intentions when asserting
expected behaviour.

For instance, with `assert`, to check the existance of the method add we
had to write:

  assert.ok(~Object.keys(readlater).indexOf('add'));
  assert.equal('function', typeof readlater['add']);

while with `should` we can write:

  readLater.should.have.property('add').and.be.an.instanceOf(Function)

what is far more expressive than the previous two assertions.
Add before hooks to the tests

Extract the repetitive initialization of each test to a beforeEach hook
Abstract the model from the persistance

The model is turned into a middle-man providing a gateway for the real
implementation in-memory.

Introducing the use of 'sinon' to spy on a fake gatway so the readlater
model tests can be completed without the need of a real gateway.