Issue 4152: Eliminate "will never be null" warnings in smobs.tcc

Hopefully this will no longer cause spurious warnings with g++ 4.7.
Issue 3066: tie in TabStaff (using q) displays one of the unisone notes in a chord

This patch just tries to do a better job at matching potentially
corresponding notes when producing ties by not messing up match order as
badly when matching ties to noteheads.
Issue 2010: \lyricsto may turn into a voice-mangling zombie

The problem here was that the simultaneous iterator might keep
rerhythmed lyrics around when the associated voice has died already,
blocking the simultaneous iterator.  The solution is that when removing
the last regular iterator to remove all remaining lyric-combined
iterators at the same time.
Issue 630/1: Implement Grob_property_info::matched_pop

This can be passed a token returned from Grob_property_info::push and
will then only revert the matching push or nothing at all.  This is used
to limit the fallout from internal property reversions that might not
match the original override because of an intervening property push/pop.
Issue 630/2: Let grace_engraver only pop grob properties it pushed itself
Issue 630/3: Let Grace_iterator produce a GraceChange event
Issue 630/4: Let Grace_engraver react mostly to GraceChange events

When GraceChange events are not available, this reverts to grace processing
at initialization or at the engraver's process_music call.
Issue 630/5: Reinstate acciaccatura in tablature example

This was removed with commit 2817ef1228cecd8b275fd666e0b5ba1bbd9406ce in
version 2.15.38 since issue 630 was just too hard to work around.
Issue 630/6: Move override in flags-straight-stockhausen-boulez.ly
Add functionality to string numbers

This commit adds a number-type property that allows for different
numbering styles, as well as user-exposed predefined commands
to easily switch between default guitar-like string numbers and
roman numerals more suitable for unfretted strings.

Additionally, the number formatting function previously used only
in fret-diagrams is now available for possibly wider use.
Add regtest for string number styles
Doc: Usage 1.2 - Added note about using wildcards

Issue 4147

Added note about being able to use wildcards with
LilyPond in the 'Standard shell commands' section.

Changed some of the text for Windows and MacOS users,
who may not know what a 'shell' is, to reflect each
OS's own nomenclature for their 'Terminal' applicatoin.

Other minor typo fixes in this section.
Issue 4158: Turn Smob_base<>::print_smob into member functions

Using a trampoline here leads to a more natural form of the
print_smob function.
Doc: fix broken link
Avoid comparing pointers-to-member of covariant types

The GCC version of current GUB is not happy about those kind of
comparisons, so we add a static_cast here.
Issue 4127: allow mid-measure \time

\time is now allowed in mid measure provided that \partial appears at
the same timestep.

Documentation changes include some clean-up of index entries related
to time signatures.
Even more typecasting of member function pointers in smobs.tcc

This is yet-another-bugfix in order to get a rather inconspicuous member
function pointer comparison accepted by old GCC versions.
Issue 4156: Define Smob<> constructors

The purpose of this patch is to stop the previous implicit copying of
Smob<> data members in derived copy constructors.

To that purpose, Smob<> has received a private copy constructor (which
gcc unfortunately only considers worth a warning rather than an error
when implicitly used in a default copy constructor) and an inline
default constructor.

Several classes contained virtual copy constructors without being
actually copyable have had their copy constructor removed.

Several copy constructors just containing a failing assertion were
instead removed and left (privately) declared but not defined.  This
standard C++ practice leads to link time rather than run time errors in
case an instance of such a class is copied.

Other smob-defining base classes (Simple_smob and Smob{1,2,3}) do not
actually have non-static data members that could be initialized.

Prohibiting the copying of Simple_smob as a base class seems rather
pointless as all of the data members of a derived class are under the
control of the derived class.  However, Smob{1,2,3} "misuse" the this
pointer to contain an SCM value.  Creating a copy would change the
associated address, a very undesirable operation.  So Smob{1,2,3} have
its constructors private and/or disabled.
Let Paper_column::break_align_width accept list of break-align symbols
Issue 660: ossia staff doesn't stop at correct horizontal position