Add support for scales:

scale(tonic, name, *opts)

Examples

    scale(:C4, :minor)
    scale(:Bb, :major_pentatonic)

Opts currently supports the key :num_octaves:

    scale(:Eb, :ionian, :num_octaves, 2)

Supports the following scale names:

     * diatonic         
     * ionian           
     * major            
     * dorian           
     * phrygian         
     * lydian           
     * mixolydian       
     * aeolian          
     * minor            
     * locrian          
     * hex_major6       
     * hex_dorian       
     * hex_phrygian     
     * hex_major7       
     * hex_sus          
     * hex_aeolian      
     * minor_pentatonic 
     * yu               
     * major_pentatonic 
     * gong             
     * egyptian         
     * shang            
     * jiao             
     * zhi              
     * ritusen          
     * whole_tone       
     * whole            
     * chromatic        
     * harmonic_minor   
     * melodic_minor_asc
     * hungarian_minor  
     * octatonic        
     * messiaen1        
     * messiaen2        
     * messiaen3        
     * messiaen4        
     * messiaen5        
     * messiaen6        
     * messiaen7        
     * super_locrian    
     * hirajoshi        
     * kumoi            
     * neapolitan_major 
     * bartok           
     * bhairav          
     * locrian_major    
     * ahirbhairav      
     * enigmatic        
     * neapolitan_minor 
     * pelog            
     * augmented2       
     * scriabin         
     * harmonic_major   
     * melodic_minor_asc
     * romanian_minor   
     * hindu            
     * iwato            
     * melodic_minor    
     * diminished2      
     * marva            
     * melodic_major    
     * indian           
     * spanish          
     * prometheus       
     * diminished       
     * todi             
     * leading_whole    
     * augmented        
     * purvi            
     * chinese          
     * lydian_minor