1.0

/to @bajtos 
/cc @raymondfeng 

Please review the following.

https://github.com/strongloop/loopback-phase/blob/1.0/example/middleware.js => example for our middleware use case.

https://github.com/strongloop/loopback-phase/blob/1.0/test/phase.test.js => the phase API / test

https://github.com/strongloop/loopback-phase/blob/1.0/test/phase.test.js => the phaseSet API / test

Also take a look at the example in the README.md. Everything else is copied from loopback-boot.
So what happens when `phase` is a number or a random object?

Please add a check or an assert to ensure we are adding only `Phase` objects. Add a unit-test to verify the implementation.