Self referential test
Instance specific modifiers of Feat, DictFeat and Actions

A Feat/Action object is shared among all members of the class
precluding a direct way to change the modifiers (e.g. units)
of a feat in only one instance. Instead of creating a new
instance of Feat/Action for each driver instance, this patch
provides:

 1.- A way of getting instance aware proxy of Feat/Action
     >>> driver.feats[feat_name]
     >>> driver.actions[action_name]
 2.- A easy way of storing in the instance (not in the feat)
     instance specific feat modifiers
     >>> driver.feats[feat_name].units = new_units
 3.- Changes to Feat/DictFeat/Action to use the instance
     information if present falling back to the shared info

Instance information is only stored on demand, no copies are
made until the functionality is needed.
New Self class to provide referencing between Feats

It is quite common that certain Feat attributes (e.g. units) are
dependent on the value of another Feat. This patch allows to create
such relationships. The Self object can only be used within a Feat
definition and takes the name of the related feat an in parenthesis
the default value. For example:

   @Feat(units=Self.units('ms'))
   def frequency(self):
       # The code goes here

   @Feat()
   def units(self):
       # The code goes here
Added the 'experiment' example
 - moved the simulators to a new directory
 - moved common functions from sim_fungen to sim_instrument
 - changed create_TCPInstrumentHandler to receive an instrument instead of an inst$

Also added a missing function to DictFeatWidget
Merge branch 'develop' of glugcen.dc.uba.ar:lantz into develop
I have no idea why I have so many branches...
As Lantz is Python 3, sip API 2 does not need to be enforced.
Docs 'make all' also builds html and 'make github' forces push
We changed some options concerning the operating system.
Started the driver for a PCI A/D Board.
Add the module file
Bug fix for windows.
Implemented the right name for the windows visa library.
Fixed a bug in the exception. Tested the shell in windows and it wokrs
fine.
Driver.__new__ does not overwrite .name given by __init__
Added LIBRARY_PREFIX and preprocess arguments hook

LibraryDriver now accepts a new Class attribute (LIBRARY_PREFIX) that
is passed to Library upon initialization. When a function is looked at
Library it will check LIBRARY_PREFIX + function_name in addition to
function_name. This removes much of the common boilerplate naming due
to the lack of namespaces in C code

The code that preprocess the arguments before calling the function has
been moved to a separated function _preprocess_args to enable easy
overriding.
Bug fix in len of processors
New test for multiple argument action processor
Preliminary support for NI-DAQmx

A System class provides access to general information about the
installed devices and globally defined channels and tasks. It contains
three read-only dictionaries (channels, tasks, devices) that can be
used not only to obtain their names but to obtain instances of wrapping
object.

Channels, Tasks and Devices also provide these type of dictionaries for
accessing the related properties. A common dictionary is used to protect
for creating two wrappers of the same underlying physical channel/device/task.

Specialized clasess are defined in channels.py and tasks.py. This is still
work in progress. Many of the calls need to be moved from the base classes
to the specialized and viceversa. Function calls and parameters types still
need to be adapted.
Added caldarola to authors
Merged conflicting branches in ni