use-package-with-elapsed-timer: respect option at runtime

Previously the option `use-package-verbose' was consulted at macro
expansion time, and as a result customizing the option did nothing,
without also recompiling `use-package.el'.
use-package-with-elapsed-timer: add declare indent rule
use-package-font-lock-keywords: add use-package-with-elapsed-timer
Merge pull request #96 from tarsius/master

use-package-with-elapsed-timer: respect option at runtime
:idle-priority keyword to change the running order of idle functions

Lower-priority idle functions are run first. Idle functions with no
specified priority default to 5 and all functions with the same priority
are run in the order in which they are evaluated, meaning the behaviour
is backwards compatible.

Updated documentation as well.
Merge pull request #98 from ffevotte/idle-priority

Add a :idle-priority keyword to change the running order of idle functions
Add new option use-package-idle-interval.

* use-package.el (use-package-idle-interval): new defcustom
(use-package-start-idle-timer): use it
(use-package-idle-eval): use it
* README.md: document it

This addresses bug #77
Merge pull request #99 from YoungFrog/idle-interval

Add new option use-package-idle-interval.
fix typo

Actually the reader accepts (list 'a'b) = (list 'a 'b); it still looks
wrong.
bind-keys: ,@(when map (list map)) => map

Omitting map is same as passing nil.
bind-keys: bind directly to prefix-map

instead of constructing equivalent key sequence by string concatenation.
This allows specifying vector key sequences, as in bind-key (since
aed85970814b6a3efd4c86f84041bf3214a8fc82).
Merge pull request #101 from npostavs/bind-vectors

 bind-keys: bind directly to prefix-map
* bind-key.el (bind-key): don't eval key-name at macro expansion time.
Merge pull request #102 from YoungFrog/keynameeval

* bind-key.el (bind-key): don't eval key-name at macro expansion time.
Eval backquote earlier and support non-`progn' lists.

* use-package.el (use-package-plist-get): add optional args: `eval-backquote'
  and `no-progn' to control how arguments are retrieved.
  (use-package-plist-get-value): remove this function
  (use-package): replace calls to old function to modified function.

Fixes issue #94.

Rationale :
- use-package-plist-get-value was just another layer for no good reason,
  and IMO its name was totally unclear.
- we now eval-as-backquote earlier, allowing constructs like:
(let ((my-list-of-commands-in-foo '(foo1 foo2)))
  (use-package foo :commands ,@my-list-of-commands-in-foo))