Fix modal whitespace and comment syntax

Convert tabs to spaces; use javadoc style comments.
Add MarkdownEditor component

The MarkdownEditor implements an editor that can be
used as a component to add a rich text editor to any
textarea component.  The MarkdownEditor shows basic
editor controls, help, and includes preview functionality.

Here's the documentation for the MarkdownEditor component
as Javadoc.

/**
 * This component implements a Markdown TextEditor that can be
 * dropped into anywhere on an existing form.
 * Initialize the MarkdownEditor with an element `el`,
 * and the `id` of the textarea (so you can retreive its
 * value when the user submits the form.)
 *
 * Options:
 *   el: HTML element to fill - required
 *   id: HTML ID for the <textarea> element - required
 *   data: Default data for the textarea - required
 *   maxlength: Maximum characters for the text area - optional
 *   rows: Number of rows in the textarea - optional
 *   validation: List of strings for the data-validate attribute
 *     - optional
 *     example: ['empty', 'count400']
 */
Update styling for preview

Add bars on top and bottom to deliniate which
part is the preview area.
Prevent repeated markdown

In the event that markdown is already inserted for the
selected syntax, don't let it be inserted again.
For example, if text is selected in **text**, don't
insert another set of ** markdown syntax.  That would
just be wrong.

Add some additional comments.