Make erlang-mode more compatible with package.el

Package.el  and Emacs  package  repositories (like  ELPA or  Marmalade
place some requirements onto packages which are uploaded to them. This
commit does  minor cosmetic  changes which makes  it easier  to create
appropriate package file for those repositories.
extend re back reference syntax with \g escape sequence

Add the \gN and \g{N} syntax for back references in re:replace/3,4
to allow use with numeric replacement strings.
erts: Remove some compiler warnings
erts: Refactor code loading to use erts_schedule_thr_prgr_later_op
erts: Allow thr_prgr_later_op to reschedule

and reuse the same ErtsThrPrgrLaterOp
erts: Refactor tracing to use erts_schedule_thr_prgr_later_op
erts: Refactor naming regarding code_write_permission

The concept of code_write_permission is used by tracing as well
and is not specific to code_ix.
erts: Fix faulty lock check assert
fix typo in keyboard-interactive string
[ct] Block output into single io call

Add newlines to the same io function call,
so that concurrent io always starts at a new line.
common_test: Don't use undocumented features of io:format()

The Format string argument for io:format() is not documented
to accept an iolist, so we should not depend on it.

Also, it is bad practice to use an arbitrary string as a format
string for io:format(), since it could contain a '~' character
which could trigger a badarg exception.

Fix both problems at the same time by using io:put_chars() to
display the iolist.
ct_master_logs: Don't use io:format/3 with an empty variable list

It is bad practice to use an arbitrary string as a format
string for io:format(), since it could contain a '~' character
which could trigger a badarg exception. Therefore, replace all
io:format/3 calls that looks like:

  io:format(Fd, String, [])

with:

  io:put_chars(Fd, String)
ssl: Support for SSL Next Protocol Negotiation
* http://technotes.googlecode.com/git/nextprotoneg.html
ssl: Update SSL docs for SSL Next Protocol Support
ssl: Changed default behaviour of next protocol negotiation to make
more "sense" (be true to the specification).
ssl: Dialyzer fixes and code cleaning

Types in a record where wrongly type specified, did not include
undefined.  Make them comments for now, maybe we will specify internal
records with dialyzer types later, but as the other record fields are
not specified at the moment, with dialyzer types, make the code
consistent.
ssl: SSL 3.0 does not support next protocol negotiation

Also shorten test cases names to workaround test framework problems
on windows
Export ets:match_pattern/0 type

Similar to match specification, some of the ets functions uses a match
pattern.  Export the match pattern type to allow for inclusion in the
types and function specifications of other modules.
dialyzer: Do not output warnings for unused funs

Dialyzer no longer outputs warnings for unused anonymous functions
("funs"). Warnings are still output for unused functions.

Funs in functions with -nowarn_unused_function attributes generated
warnings for unused functions. Unused list comprehensions also
generated warnings for unused funs.
[reltool] Use spawn_executable instead of spawn when starting nodes in test

In order to handle paths with space, spawn_executable is now used
instead of spawn when starting nodes with open_port/2 in
reltool_server_SUITE.