Lpmini

First version of my Launchpad Mini Mapping,
still messy, but I would like to get an early review, as this is my first time working with (seriously) with JS, so I guess you will find some "bugs". 

What works now:
 - Changing virtual "page" so we get 8x (64 + 7) buttons
 - Added "shift" button
 - Cues for Channel 1 - 4 on first page

What I may change:
 - Change the Callback & Keys so that I have a "Base class" for keys, and then have different kind of keys, right now I have one type of Key, and I change only the callbacks, or I may leave it like this... my biggest problem that I dont get how I could have inheritance in JS....

Thanks in advance !

Note: from line 296 its the older implementation for first Launch pad, I keep it my code for reference will be removed, of course I gave credit to the original developer in the comment section !