Make default snippet customizable
Factor out embedded elisp code

* yasnippet.el (yas--key-from-desc): Added
Assume NO-TEMPLATE is non-nil if `yas-new-snippet-default' is nil
Merge pull request #397 from thisirs/customizable-snippet

Make default snippet customizable
fix: more idiomatic elisp, better docstrings, less byte-compiler warnings

By Stefan Monnier, with original commentary.

"Here's an untested patch of cleanups, found partly via compilation using
lexical-binding and partly via checkdoc-current-buffer (and
occasionally by stumble-upon happenstance)."
fix: replace 'text' in 'yas-text' in bundled snippets

The previous commit broke these snippets by enabling
Fix: cleanup yasnippet-tests.el

- add edebug-form-specs
- replace "yas/" with "yas-"
- yas/ert => yas-batch-run-tests
Closes #318: correctly implement YAS--MODES-TO-ACTIVATE

- simpler and got rid of YAS--ALL-PARENTS
- also got rid of YAS/MODE-SYMBOL backward compatibility hack
Closes #318: Don't use CL-LABELS for backward compatibility with older emacsen
fix: shoosh warning with LETREC instead of LET
fix: please older emacsen, don't use LETREC after all

also fix some compiler warnings
Update manual.mdown

file name error
Merge pull request #407 from dongxiong/patch-1

Update manual.mdown
fix: remove references to dropdown-list.el in Rakefile
Closes #406: correct docstring for yas-extra-modes
fix font-lock-keywords syntax

The syntax is (MATCHER . FACENAME) (note the dot).
remove redundant font-lock-keywords

`lisp-font-lock-keywords' is identical to `lisp-font-lock-keywords1',
`lisp-font-lock-keywords2' is a superset of `lisp-font-lock-keywords1'.
inhibit change hooks during (insert content)

`yas-expand-snippet' narrows to a 0 size region before doing (insert
content), this confuses cc-mode's before-change-functions that
invalidate some cached information. Binding `inhibit-modification-hooks'
to `t' prevents calling these functions.

Fixes #404.
add: test for issue #404
fix: don't use universal-argument-num-events