Allow reading of any valid descriptor type
Adding additional virtual functions to support code reduction. 

Printing of descriptors now called through a function that
takes a virtual function.
Removing assert of audio cluster descriptor index == 0
Adding readline support for console app on OS X