Refactor functions resolving ports.
Handle MIDI port objects when resolving ports.

First step to enable #5.
Documentation of new function.
Save port objects in devices.
Remove unnecessary methods.
Devices should respond to ID instead.

Resolves #5.
Use cached listed of inputs and outputs.
Release version 0.1.8.