Pass distDir to plugin initialize() if present.

This solves the problem of loading Tern modules from plugins outside of the
Tern distribution. Without this change, a plugin does not know where the
Tern distribution loading it is, and attempts to require Tern modules can
either fail or load from the wrong Tern installation (thus failing to
register with the actual running server).

Update the documentation to reflect this change.

The details here might change, but I do think there needs to be a way for plugins to reliably get access to Tern modules (especially the stateful tern and infer modules) regardless of the plugin location.