EdgeLike.nodes changed to type Iterable[N].

Changed some {In,Out}Param to {Outer,Inner}Elem
Added `sources` and `targets` methods of type Iterable[N] to EdgeLike.

Removed `to` method from HyperEdge.
EdgeLike and InnerEdge do not extend Iterable anymore.
Receive and return `E[N] with EdgeCopy[E]` everywhere (instead of `E[N]`).
Removed weighted edges (W*Edge).

Removed `weight` method from EdgeLike
Moved `label` method from EdgeLike to LEdge
Tidying up and formatting.

Removed several `asInstanceOf`s.