[LRN] Add `empty()` public method and `clear()` as its alias

Removes all math from the editable field

Conflicts:
	src/commands/math.js
	src/commands/math/commands.js
	src/publicapi.js
diff --git a/src/publicapi.js b/src/publicapi.js
index 84b13db..35cc936 100644
--- a/src/publicapi.js
+++ b/src/publicapi.js
@@ -160,6 +160,10 @@
       if (this.__controller.blurred) this.__controller.cursor.hide().parent.blur();
       return this;
     };
+    _.empty = _.clear = function() {
+      this.select().__controller.backspace();
+      return this;
+    };
     _.cmd = function(cmd) {
       var ctrlr = this.__controller.notify(), cursor = ctrlr.cursor;
       if (/^\\[a-z]+$/i.test(cmd)) {
diff --git a/test/unit/publicapi.test.js b/test/unit/publicapi.test.js
index 4395cc8..f208bff 100644
--- a/test/unit/publicapi.test.js
+++ b/test/unit/publicapi.test.js
@@ -108,7 +108,7 @@
       mq.latex('x+y');
       assert.equal(mq.html(), '<var>x</var><span class="mq-binary-operator">+</span><var>y</var>');
     });
-    
+
     test('.text() with incomplete commands', function() {
       assert.equal(mq.text(), '');
       mq.typedText('\\');
@@ -157,6 +157,18 @@
       assert.equal(mq.__controller.cursor[L].ctrlSeq, '0');
       assert.equal(mq.__controller.cursor[R], 0);
     });
+
+    test('.clear()', function() {
+      mq.latex('xyz');
+      mq.clear();
+      assert.equal(mq.latex(), '');
+    });
+
+    test('.empty()', function() {
+      mq.latex('xyz');
+      mq.empty();
+      assert.equal(mq.latex(), '');
+    });
   });
 
   test('edit handler interface versioning', function() {