Name and uuid on a component are now optional.

Removes dependency of component on config object. Still required in
config database.
Uuid on a port is now optional.

Removes dependency of port on config object.
Remove concept of a permanently disconnected port.

Create real input and output ports up front as we create the component,
so they can be used immediately.

A disconnected input or output port is just one that has no connections.
This will allow us to add connections at runtime more easily, for
testing or to compose components without them being database-backed.
Improve connection API.
Hook up connections more coherently.
Make a better way of directly connecting components in memory.
Merge pull request #39 from redjack/api-smoothing

Smooth out the API to make things easier to use