Clean up Plug.Builder tests

I removed all the patterns in the form:

    assert something == true

in favor of:

    assert something
Better docs and some refactoring in Plug.Builder

Docs reviews:

- better module docs, with examples on overriding `init/1` and `call/2` and a
  more detailed description of the order of the plug pipeline
- more detailed docs for the `plug/2` macro
- more detailed docs for the `compile/3` function, mentioning guards and adding
  some examples

Code reviews:

- extracted the `quote_plug_call` function which returns the quoted application
  of a plug based on its type (module plug or function plug), so that the main
  logic of `quote_plug` is never repeated
- renamed the `:call` atom to `:module` in order to be consistent with `:fun`
  (that I actually renamed to `:function` for clarity
Merge pull request #149 from whatyouhide/builder-docs-and-refactoring

Plug.Builder docs and refactoring
Add exception tests for Plug.Builder

The existing tests in Plug.BuilderTest don't cover error cases when exception
are raised by bad plugs (both compile-time and runtime exceptions). This commit
adds tests for these cases.
Merge pull request #150 from whatyouhide/builder-tests

Add exception tests for Plug.Builder
Minor fixes in the documentation for Plug.Debugger
Merge pull request #151 from whatyouhide/debugger-docs

Minor fixes in the documentation for Plug.Debugger