Changed to Java 8, added unit test libs, and tested/refactored Solenoid classes

The 2015 WPILib and control system will use Java 8. It would make a lot more sense for our competition robot (anything using the RoboRIO) to switch to Java 8. (Code that has to run on the old robot can't use Java 8, so merging this PR means that this code can only be used by the RoboRIO. Older robots that use the CRIO would have to continue using older repositories and code.)

Added Eclipse Kepler preferences under `support` directory. Eclipse Kepler is the best version to use with Java 8.

Added JUnit libraries under the `libs` directory. Also created a new `testsrc` directory under which all test code should be placed. Moved the mock implementation classes to that directory, and created a `LimitedSolenoidTest` class. Running these tests showed some deficiencies in the `Solenoid` interface and implementation classes, so they were refactored so that the logic would work correctly and the tests would pass.
Wouldn't it be more readable to evaluate `action` and `position` seperately, instead of at the same time?  We can look at the position by itself first, determined by which switch is pressed, if any, and then evaluate the action being performed in regards to the position.
i.e. 
```
if(extendSwitch.isTriggered())
    position = Position.EXTENDED;
else if(retractSwitch.isTriggered())
    position = Position.RETRACTED;
else
    position = Position.UNKNOWN;

if(action==EXTENDING&&position==EXTENDED)
    action==OFF;
else if(action==RETRACTING&&position==RETRACTED)
    action==OFF;
else if(action==OFF&&position==UNKNOWN)
    // Solenoid is lost, attempt to recover
```