Better handling of Java interfaces

Handle Java interfaces without relying on untracked newlines so that
nl_remove_extra_newlines can be nonzero. Also handle the keyword
@interface during tokenization so that it is not mishandled. Tests
80011-80014 are added as well.
Explicitly recognize '@interface' as class-like keyword

In Java, treat '@interface' like the keyword 'class', including all
implied indentation. This changes the results of 80010, and as such is
a distinct commit.
Fix applying sp_before_dc rule with decltype

Rule wasn't applied and one space was forcely added in the following example:
std::vector<uint8_t> v;
decltype(v)::const_iterator it;
Merge pull request #196 from villytiger/decltype

Fix applying sp_before_dc rule with decltype
Merge branch 'master' of https://github.com/npnth/uncrustify into npnth-master
Remove unused local variable.
Use tok_ctx.expect() in a few more places.
Merge some minor changes from uncrustify