pass name (not name-string) to eval-after-load

Fixes #52: the :config block would be triggered when loading a config
file with the same name as the package and again when loading the
package itself.
Merge pull request #53 from npostavs/eval-after-name

pass name (not name-string) to eval-after-load
Enables using variables and functions as arguments

This change an extra level on indirection for two cases:

+ when an association or an alist is required, it is possible to pass a
variable containing an association or an alist
+ when a sexp to be evaluated is required, it is possible to pass a
function instead
Merge pull request #54 from dudebout/variable-and-function-support

Enables using variables and functions as arguments
Removes `plist-get-sexp`

This function was not working as advertised.
Then `funcall` was evaluated too early and all the benefits of late evaluation for autoloads was lost.
Furthermore, this function was not really needed in the first place:

```
(use-package foo
  :config my-foo-function)
```

can easily be replaced by the following:

```
(use-package foo
  :config (my-foo-function))
```
Merge pull request #55 from dudebout/fixes-#54

Removes `plist-get-sexp`
plist-get-value treats arg as backquoted

This allows use of variables or even arbitrary expressions to construct
use-package arguments:

(use-package some-package
  :mode ,mode-spec
  :bind (,binding
         ,@more-bindings
         ,@(cl-loop for i from ?a to ?z
                    collect `(,(string i) . nifty-function))))
use plist-get-value for all non-sexp args
Merge pull request #56 from npostavs/quasiquote

Quasiquote