* Adds optional file locking to protect NeXus files accessed by multiple processes.
* Adds a context manager to open and close NeXus files before and after multiple read/write operations.
* Allows the use of all h5py.Dataset keyword arguments when creating a NXfield, such as `maxshape` and `fillvalue`.
* Adds a NXfield `resize` function to resize arrays in place within the bounds set by `maxshape`.
* Modifies the NXgroup `copy` function to enable use of h5py.Group copy to copy between files. It accepts the same keyword arguments, for example to embed externally linked data in the copied file. Note that the `copy` function no longer returns a deep copy of the group, but using `deepcopy` directly provides the same functionality.
* Allows h5py.File keyword arguments to be used in the `nxload` command.
* Adds a SciPy interpolation function to the NXdata class to smooth one-dimensional data.
* Adds autocompletion of NeXus group dictionaries as an IPython extension.
* Adds `nxduplicate` command-line script for duplicating NeXus files with h5py keyword arguments.
* Adds `nexusformat` command-line script to return the package version number.
* The `len` function now returns the size of the first dimension, for compatibility with NumPy and h5py.
* Stores modification times in NXFile instances to allow modifications by external processes to be detected.
* Improves docstrings for all functions.
* Adds a suite of `pytest` functions and implements Travis-CI checks on Github.
* Fixes a bug when adding two NXentry groups.
* Fixes a bug where attributes are added to more than one group.
* Fixes a bug with determining valid plotting axes in files created by Mantid.
* Improves error messages for missing external links.