Pipelet class model refactoring continued:

- Restore Pipelet.._add_source() and _remove_source():
  - as shortcuts to .._input._add_source() and _remove_source()
  - both allow a Pipelet, an Output or an Array of Objects for source

- Restore Pipelet.._add_destinations() and _remove_destination()
  - as shortcuts to .._input._add_destinations() and _remove_destination()
  - both allow a Pipelet, an Input or an Array of Objects for destination

- Input.._add_source() now only accepts an Output or an Array of Objects for source

- Output.._add_destination() now only accepts an Input or an Array of Objects for destination

- Plug is now an Event_Emitter:
  - Output now emits events that were emitted by Pipelet so far
  - Input does not currently emit events

- Pipelet is no-longer an event emitter, only Plugs are, and in particular Output:
  - Pipelet.._on() is now a shortcut to _output._on()

- Pipelet..__emit() code moved to Output..emit()
  - Pipelet..__emit() remains as a shortcut to _output.emit()

- XS.Options object defined methods for manipulating operations' options:
  - forward(): returns an options Objects with options that must be forwarded
  - has_more(): returns truly if there is an incomplete transaction

- xs._output.is_void now set to true:
  - Allows testing by _input._add_source() and remove_source()

- Pipelet.set_default_options():
  - Use constructordefault_options if present:
    - (Object): Default options object
    - (Function): Default options function called with "parameters" returning default options.

- Document a use case for stateless() pipelet

- Encapsulate:
  - Initialize _input and _output before Pipelet constructor.
  - Stop redirecting _on() and __emit()

- http_listen():
  - Add options to greedy trigger input for better traces
  - Add trace when listning to servers

- uglify():
  - Uglify.default_options() sets name to location
  - Use XS.Options.has_more()

- Update tests
- Update documentation