Rename hibernate to sleep

Turns out hibernate wasn't the right term after all. The scoutscript
command was already renamed, this renames all the internals.
Add PinoccioScout::scheduleSleep

This moves some code from Shell.cpp into Scout.cpp, where it makes more
sense.
Fix memory leak in power.sleep

If you would call power.sleep a second time, before the first sleep
completed, the command buffer would not be freed.
Always run the power.sleep callback

When a sleep is scheduled, but it takes too long for existing
operations to finish, the actual sleep will be skipped. However, before
the callback command would also be skipped, which could produce
unexpected behaviour.
Slightly restructure sleep handling

This makes sure that if for some reason we cannot sleep, the callback
handler will still be called after the specified time and the pending
sleep is cleaned up.
Add DISABLED bitlash "constant"

This was documented as supported, but was not defined anywhere.
Remove an unused variable
Improve checkArgs to support a maximum

Previously, checkArgs could either check for an exact number of
arguments or at least some number of arguments, triggered by a messy
boolean argument.

Now, there are two overloaded versions of the function, one that checks
for an exact number of arguments and one that checks for both a minimum
and maximum number of arguments.

This allows stricter checking - some functions would previously not
raise an error when too many arguments were passed.