a lot of refractor.

1. more clear js,did a lot refractoring. 
2. abstract get_kernel methodout for reuse. 
3. add a full support for heatmap with contour. 
4. abstract the json interactive out, for reuse. 
5. merge dvalcarce's binary classify demo in. 
6. add a mechanism for auto button code generation. 
7. fixed a bug which in clustering demo, when user click left mouse button, the point are recorded in both feature sets, now it works correctly.