Add PicardStage device adapter

This device adapter gives Micro-Manager the ability to control linear and
rotational (twister) stage motors by Picard Industries
(http://wwww.picard-industries.com). These devices are primarily used in
the OpenSPIM single-plane illumination microscopy platform
(http://openspim.org).

The DAL provides three devices: CPiTwister, CPiStage, and CPiXYStage. The
twister device functions like a linear stage, except it implements
SetPositionUm as though it were SetPositionDegrees. A similar approach is
taken to GetLimitsUm and GetStepSizeUm. The single stage device functions
as one would expect, driving a single-axis stage. The XY stage device
groups two such linear stages into an X/Y device.

Please see http://github.com/openspim for full device adapter history
prior to its inclusion in Micro-Manager.

Signed-off-by: Luke Stuyvenberg <stuyvenberg@wisc.edu>
PicardStage: Add PiUsb workaround

Sometimes, piRunMotor/TwisterToPosition returns before
piGetMotor/TwisterMovingStatus specifies true -- our SetPositionSteps
member functions can return control to Micro-Manager before they would say
they are moving. This has led to poor acquisition, since the stage begins
moving while the camera takes an image, or the stage is sent to the next
destination before reaching the first.

The workaround is pretty straightfoward: If, after calling the 'run motor'
routine, we are not at our destination, start waiting for single (partial)
time slices. Any time the motor reports that it is moving or that it has
arrived at its destination, break the loop and return. If neither happens
within MAX_WAIT seconds, break anyway, and log a message to the  console.

In our own testing, this has solved the problems I mentioned above.

Signed-off-by: Luke Stuyvenberg <stuyvenberg@wisc.edu>
PicardStage DAL: Add CPiDetector

The PiUsb Detector is a method of detecting attached Picard Industries
linear motors and twisters and storing their serial numbers. This lets the
DAL guess at which serial numbers the user will enter, hopefully saving
them a little time.

Signed-off-by: Luke Stuyvenberg <stuyvenberg@wisc.edu>
Add PicardStage DAL to micromanager.sln

This commit is separate since the solution file will likely change prior
to the inclusion of this device adapter.

Signed-off-by: Luke Stuyvenberg <stuyvenberg@wisc.edu>