Validate ports for uniqueness

Adds a custom JSON validator to check Iterable[_] and Option[Iterable[_]] for unique elements.

Fixes #183.

@solidsnack