mmem: Prevent duplicate init of mmem

This could seriously corrupt data if mmem_init was called again after
someone called mmem_alloc.
[avr] Removed usage of deprecated MCUSR

Since avr-libc 1.8.0 MCUSR is marked as poison as it was replaced by the
correct name MCUCSR.
Thus code still using the old MCUSR name does not compile anymore.

This commit replaces usages of former MCUSR by its new name MCUCSR and
modifies the alias fallback accordingly.
atmega128rfa1: Fix the default build error

Fixing from http://sourceforge.net/p/contiki/mailman/message/32494852/

Signed-off-by: Weichuan Yan <yan.weichuan@gmail.com>
core/net/rime/ipolite: stop ctimer and reset queuebuf pointer when canceling old send

Ipolite is used by netflood and route-discovery modules among others. If a route request is yet to be re-broadcasted and a local route discovery is started (interval == 0), the previous queuebuf used is freed but ctimer and queuebuf pointer is left unchanged. This causes corrupt route requests to be sent, invalid routing tables to be formed, memcmp() on NULL pointer on receive, and other undefined behavior.

Signed-off-by: Oskar Nordquist <oskar.nordquist@crlsweden.com>
Adding a scan-build command

scan-build http://clang-analyzer.llvm.org/scan-build.html is a clang
based tool designed to provide static analysis over C code files.
Button: Move common interface visualization to Button class

The implementation of a simple JPanel with a JButton was only code
duplication accross the several button implementations.
SkyButton: Reduce dependency on SkyMote

Placed call to setButton() in implementation-specific functions
doPressButton() and doReleaseButton() as in ContikiButton.
Button: None of the buttons will saves its state

Saving a buttons state in simulation file is not required as its state
is much too volatile.
Button: Add doPressButton() and doReleaseButton() to Button class

As every Button has a node-specific implementation part, this should be
the minimal interface to the backend node emulator for pressing and
releasing a button.
Buttons: Move implementation of button routines to Button class

The implementation of clickButton(), pressButton(), and releaseButton()
can be shared accross the several node-dependent implementations as
they use the node-dependent doPressButton() doReleaseButton() routines.
Buttons: Added missing @Override annotations
Buttons: Some minor cleanups

Removed imports not required anymore and made some class members final
Buttons: use non-deprecated MSPSim button api
New PluginType SIM_CONTROL_PLUGIN for sim control

SIM_CONTROL_PLGUIN are handled like SIM_PLUGIN, with one exception.
If the simulation is started with -nogui=<simfile> than it is checked
if a controlling plugin is loaded. If not, the simulation terminates
with an error message.
Better error message when aborting simulation
Button: Allow to press and release button by mouse and key

In the previous implementation a click event was triggered when the
button was pressed.
This implementation allows to set and release buttons independently both
by mouse clicking and by key typing.
Added the control plugin behaviour to executeJAR
fixed a bug in executeJAR
Fixed a bug with the ScriptRunner plugin

The ScriptRunner plugin started the simulation in GUI and NOGUI mode.
Now the simulation is only started in nogui mode
Merge pull request #847 from ejoerns/pull-req/cooja-buttons

Cooja Button interface update