rename _save_normals() -> _save_vectors(), update
new Region.get_edge_graph()
new get_edge_paths(), _get_edge_path()
new compute_nodal_edge_dirs()
new NormalDirectionOperator.get_vectors(), update .__init__()
new EdgeDirectionOperator, new 'edge_direction' LCBC

- update LCBCOperators.add_from_bc()
rename State.get_scaled_norm() -> get_weighted_norm(), fix and update

- fix weighting by state parts
- add weights, return_weights arguments
split sfepy/base/log.py - new sfepy/base/log_plotter.py, clean up

- rename ProcessPlotter -> LogPlotter
fix LCBCOperator.treat_pbcs(), update LCBCOperators.append()

- LCBCs combined with EPBCs in common nodes work correctly now
update transform_plot_data() to work with nan values
fix EquationMap._init_empty() to initialize n_epbc
fix initialization of options in Probe.__init__()
new write_results(), read_results(), update generate_probes(), postprocess()

- move read_header(), get_data_name() to sfepy/fem/probes.py, update
Python 2.5 compatibility
new dict_from_options(), update ProblemConf.from_file_and_options()

- make dict_from_string a standalone function
- update ProblemConf.from_file()
generalize override in ProblemConf.__init__()
new Struct._str(), .str_class(), update .__str__()
new example with field-dependent diffusion coefficient
fix tangent matrix not updating, clean up, use short syntax consistently

- remove history of T - now the last value is used automatically
- make problem nonlinear so that matrix updates as the conductivity changes
fix and simplify LCBCOperator.treat_pbcs()

- LCBCs combined with EPBCs in common nodes work correctly (second try)
  - in particular for non-penetration conditions with general normals