Change the order of operations in the substitution of names in the explicit state updater to prevent the confusion of variables in the state updater description and variables used in the equations. Closes #237
Simplify the rendering process and do not such an elaborate mechanism to figure out how many parentheses we can omit. Leads to more parentheses but no longer hangs when rendering complex expressions. Really fixes #210
Revert previous changes to the explicit state updater and use a different approach: immediately replace symbol names (e.g. `f`, `x`) by names that cannot clash with user defined names `__f`, `__x`, etc.), avoiding issues during the replacement process. Should fix #237 while avoiding unintended side effects.
Merge pull request #238 from brian-team/state_updater_fix

State updater fix
Infer `Variable.is_bool` from dtype instead of explicitly storing/providing it.
Rename `bool` to `boolean` in equations
Add a new preference `default_integer_dtype` and rename `default_scalar_dtype` to `default_float_dtype`.