Moved ast_parser to new brian2.parsing package, and removed BitAnd and
BitOr

The reason for removing BitAnd and BitOr is that we want them to be
equivalent to and and or in Python, but they have different precedence.
Previously we were hacking this by replacing '&' with 'and' but this is
confusing. Better to just simply use 'and' and 'or' I think.
Added new abstract_code_dependencies in parsing.dependencies and created
tests
Removed ~ from ast parsing for the same reason as & and |
Added is_boolean_expression using ast parsing
Forget to include __all__ in previous commit
Added unit parsing to parsing.expressions, didn't include support for
functions yet
Allow unitless_expr**unitless_expr even if RHS is variable power
Check for arguments being sets in abstract_code_dependencies
Updated test for abstract_code_dependencies
Added support for augmented assign to rendering
Added parsing.functions
Merged master into examples/I-F_curve_LIF
Add brian2.parsing to packages in setup.py
Add brian2.parsing to packages in setup.py: fixed typo
Make brian2.parsing.functions Python3 compatible
Add (even more) tests and fix the check for "not"
Use the parsing-based parse_expression_unit instead of unit_from_expression (still fails for function calls)
Make the unit information for functions accessible by storing a _arg_units and _return_unit attribute in the function object.
Do not provide a "power" function (users should use ** instead)
Add a _get_value_from_expression function that does a simple (float) value evaluation. This is used in the unit checking and should allow to use constant scalar variables as an exponent.