lisp/omm.el: New file added

* lisp/omm.el (omm-compatible-face, turn-on-omm, turn-on-omm++,
omm-setup, omm-make-binding, org-contextualize-keys,
org-contextualize-validate-key, org-context-p,
omm-get-cmd-symbols-with-keys, omm-get-keybinding-conflicts,
omm-chomp, org-rx, tj/convert-hard-coded-org-regexp,
omm-modern-header-style-in-elisp-p,
omm-calc-normalized-outline-regexp-base,
omm-calc-comment-region-starter, omm-calc-comment-padding,
omm-calc-outline-regexp-comment-part, omm-calc-full-outline-regexp,
omm-calc-outline-level, omm-set-org-bol, omm-set-org-eol,
omm-set-org-star, omm-calc-outline-string-at-level,
omm-calc-outline-base-string-at-level,
omm-transform-normalized-outline-regexp-base-to-string,
omm-make-promotion-headings-list, omm-fix-org-regexps,
omm-get-local-variables, omm-get-global-org-regexps,
omm-clone-local-variables, omm-comment-line-p,
omm-outcomment-diff-lines, omm-get-diff-lines, omm-cmd,
org-run-like-in-org-mode, org-get-category,
org-refresh-category-properties, org-refresh-properties,
omm-fontify-headlines, omm-print-speed-command,
omm-speed-command-activate, omm-defkey, omm-remap,
omm--set-outorg-last-headline-marker, omm-clock-out, omm++-mode,
omm-error, omm-speed-command-help, omm-speed-move-safe,
omm-self-insert-command, omm-imenu-with-navi-regexp, omm-imenu): New
  functions.

(omm, omm-faces): New customization groups.

(omm-minor-mode-prefix, omm-imenu-show-headlines-p,
omm-fontify-whole-heading-line, omm-outline-regexp-outcommented-p,
omm-outline-regexp-special-chars, outline-cycle-emulate-tab,
outline-structedit-modifiers, omm-startup-folded-p,
omm-regexp-base-char, omm-org-style-global-cycling-at-bob-p,
omm-use-speed-commands, omm-speed-commands-user,
omm-speed-command-hook, omm-self-insert-cluster-for-undo,
omm-heading-prefix-regexp, org-minor-mode-setup-hook,
omm-default-exec-diff-program): New customization variables.

(omm-version, omm-level-faces, omm-outline-heading-end-regexp,
omm-oldschool-elisp-regexp-base-char,
omm-oldschool-elisp-outline-regexp-base, omm-speed-commands-default,
omm-global-org-regexps): New constants.

(omm-level-1, omm-level-2, omm-level-3, omm-level-4, omm-level-5,
omm-level-6, omm-level-7, omm-level-8 ): New faces.

(omm-initialized, org-local-vars, org-fb-vars, omm-is-++,
outline-minor-mode-prefix, outline-promotion-headings,
omm-delete-leading-whitespace-from-outline-regexp-base-p,
omm-enforce-no-comment-padding-p, omm-outline-regexp-base,
omm-imenu-default-generic-expression, omm-imenu-generic-expression,
omm-self-insert-command-undo-counter, omm-speed-command,
omm-open-comment-trees, omm-current-buffer-visibility-state,
omm-use-outorg-last-headline-marker, omm-bopl-marker, omm-bonl-marker,
omm-bocl-marker, omm-tmp-storage, org-BOL, org-EOL, org-STAR,
omm-default-outline-regexp-base, omm-cycle-silently,
org-minor-mode-hook): New variables.

New library implementing org-minor-mode added. This file merges and
extends code and ideas from orgstruct-mode and outshine.el, and aims
to replace both libraries.
lisp/org.el: orgstruct-minor-mode section and references removed.

* lisp/org.el (orgstruct-mode): Variable removed.
(org-heading-components): Behaviour conditional on orgstruct-mode
removed.
(org-indent-line): Behaviour conditional on orgstruct-mode removed.
(org-outline-regexp): reference to orgstruct-mode in comment changed
to org-minor-mode.
lisp/org.el: New syntax constants for regexps added.

* lisp/org.el (org-BOL, org-EOL, org-STAR): New constants.

These constants abstract from hard-coded "^", "$" and "\\*" characters
in regexps, allowing org-minor-mode to apply org-mode functionality to
outcommented org-mode syntax in comment sections of programming modes.
lisp/org.el: Move org-rx from omm.el to org.el

* lisp/org.el (org-rx): Function added.
* lisp/omm.el (org-rx): Function removed.

Function `org-rx' to its proper place.