test: code cleanup

Refactor `var phaseList = new PhaseList()` into a test-global variable.
phase-list: implement more flavours of `add`

Implement the following methods for adding new phases at a given
position:

  - `phases.addAt(index, phase)`
  - `phases.addBefore(name, phase)`
  - `phases.addAfter(name, phase)`
phase-list: prevent re-adding of existing phase

Throw an error when a phase with an existing name is added again.
Merge pull request #5 from strongloop/feature/add-phase-at-position

Add phase at position