Use enum for Messages list store IDs
Support pseudo-unique IDs for documents

Add GeanyDocument::id, document_find_by_id() to plugin API.

This also fixes clicking on a Messages item whose document has been
closed and reused. Now the click will be ignored instead of jumping to
an unexpected line in the new document.
Remove generated HTML documentation from version control

As it is generated by the build system it doesn't have to be checked
in, and having it in became a whole lot more annoying since it started
being generated automatically on `make all` instead of specific (and
weird) `make doc`, as it means whenever the documentation changes the
HTML is re-generated on any make run.  This is particularly problematic
if using a different Docutils version than the one used to generate the
checked-in version as it would create local noise that should not be
committed, yet keep being annoying.

This situation probably leads to most people disabling (or at least,
not enabling) the documentation generation on normal builds, itself
leading to more hassle updating of the documentation.
Enable documentation generation automatically when possible
Properly remove generated HTML documentation on clean
Properly handle existing session when creating new project

Ask whether to adopt the existing session documents.

Also fixes the existing bug of not reloading the default session when
an existing project is open and a new project is cancelled.
Enable HTML manual building by default but for distribution tarballs

Enable building of the HTML manual by default unless not building from
Git and with an existing local copy (which is included in distribution
tarballs).

This makes sure we can install the HTML manual without having it
checked in VCS, yet not require rst2html for tarball builds.
Cleanup doc Makefile so that each conditional set all its targets

Don't set clean-local and all-local dependencies all together at the
end and rather let each section add the appropriate dependencies.
This makes each conditional more self-contained, and is safe as Make
allows adding extra dependencies to existing targets.
Don't clean HTML manual if we didn't build it

Clean the HTML manual upon 'maintainer-clean' rather than 'clean' in
case it was not built by Make but rather part of the distribution.
This is fine even then, as configure will properly require what is
needed to build it again if it is missing.
Enable API documentation generation automatically when possible
Properly close abandoned new project that couldn't be written

Also rewrite the default session in case it was cleared.
Fix GLib warning 'app->project == NULL failed'

Occurred on Project->New with an existing project when closing an
unsaved file was cancelled.
Merge pull request #315 from ntrel/move-session

Properly handle existing session when creating new project
Merge pull request #256 from ntrel/doc-id

Support pseudo-unique IDs for documents
Fix Waf build after HTML documentation untracking
Merge branch 'doc/untrack-geany.html'

Closes PR#322.
Merge branch 'doc/auto-enable-api'

Closes PR#324.