Refactor the eww history saving to prepare for storing even more

* net/eww.el (eww-data): New plist to store all the data relevant
to a single page, used throughout the file instead of the
variables `eww-current-url', `eww-current-dom',
`eww-current-source', and `eww-current-title'.
Make `l' and other commands work in eww after going back in history

* net/eww.el (eww-data): New plist to store all the data relevant
to a single page, used throughout the file instead of the
variables `eww-current-url', `eww-current-dom',
`eww-current-source', and `eww-current-title'.
Restore the header line after using `eww-readable'

(eww-readable): Copy over pertinent data from the parent page.
* eww.texi (Basics): Document `eww-readable'.
(eww-save-history): Don't let the history grow infinitely.
(eww-download-callback): Save only the file contents

* net/eww.el (eww-download-callback): Save only the file contents,
not the headers.
Allow using several eww buffers (bug#16211)

* net/eww.el (eww-render, eww-display-html, eww-setup-buffer):
Allow taking a buffer to render data in.  This allows using several
eww buffers (bug#16211).
Allow uploading files from eww

2014-11-10  Kenjiro NAKAYAMA  <nakayamakenjiro@gmail.com>

        * net/eww.el(eww-form-file(defface)): New defface of file upload form.
        (eww-submit-file): New key map of file upload.
        (eww-form-file): New file upload button and file name context.
        (eww-select-file): Select file and display selected file name.
        (eww-tag-input): Handle input tag of file type.
        (eww-update-field): Add point offset.
        (eww-submit): Add submit with multipart/form-data.

        * gnus/mm-url.el (mm-url-encode-multipart-form-data):
        Restore to handle "multipart/form-data" by eww.