Neues Recht für Anzeige von Artikeldetails/-berichten

Statt nur ein Recht für die Bearbeitung von Artikeln zu haben, das gleichzeitig auch das Recht
für die Anzeige von Details und Berichten über Artikel umfasst, wurde nun ein neues Recht eingeführt.
Das alte Recht "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" wurde also in zwei
Rechte aufgeteilt, nämlich "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" und
"Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen".
Entfernen von trailing whitespaces
make_defined_state auch beim Klicken ausserhalb des Pickers

Problem war, dass ein einfacher blur handler auch getriggert hat wenn das jqm
aufgeht. Dafür ist der timermechanismus jetzt mit ins widget gewandert und der
blur handler wird einfach abgebrochen
JavaScript-Plugin: Carriage returns escapen
Fehlendes Komma ergänzt

Fixt #2331.
Javascript escape nach Ecmascript Spec.

Es gab einen Eckfall mit CR wo das kaputt gegangen ist, Spec kennt
noch als weitere Randfälle TAB, VT, ' und BS
Einlagern: Journal nicht abstürzen lassen, wenn noch nichts umgelagert wurde
Erst testen, dann committen Sven...
Nicht benutzte Action entfernt
mini_stock auch direkt nach dem einlagern anzeigen.
Beim Einlagern die letzte gewählte Einheit merken
LoginScreen: im Check auf "schon angemeldet?" Client setzen
Methode SL::DBUpgrade2::Base::check_coa anstelle von manuellem SELECT nutzen
CRM-Menü automatisch einlesen, falls es existiert

Siehe #2328.
frame_header.css auch für JavaScript im Layout angeben, und nicht direkt in Form

Fixt #2329.
Validity-Accessor für CVars
CVar-Accessor für Optionen und Flags
CustomVariables-Helper registrieren von neu erstellen CVars

SL::DB::Helper::CustomVariables::cvars_by_config fügt neue CVars
dem ursprünglichen Objekt hinzu.
Relation zw. Note und FollowUp eingetragen
SL::DB::CustomVariable::value an Customer angepasst

als getter gibt die Methode ein SL::DB::Customer-Objekt zurück.
als setter wird eine Customer-ID erwartet.