update from teambition

1. 隐藏 Pen 所有的私有方法，通过闭包函数实现私有方法；
2. 完善事件机制，destroy/rebuild 不再产生内存泄露；
3. 优化 menu 激活机制；
4. 增加标签、属性黑名单，可以自动清理黑名单的标签、属性；
5. 增加 change 事件，监听编辑器内容变化；
6. 增加 placeholder；
7. 增加多个使用方法；

具体见下面代码解释。
判断编辑器是否为空，当编辑器中没有可见元素（存在空白标签时，如 `<div><br></div>` 之类）时，也为判断为空。