Cleanup: remove unused code

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
Add sub-instrument class

The SubInstrument class wraps the sub-instrument with no extra methods.
It keeps data access consistent and can filter attempts to access invalid
sub-instruments.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
An attempt at better error handling

Raise an exception when requesting an out-of-range module member such
as patterns, positions or samples. May need a few more iterations until
we get a stable API.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>