Add several cucumber feature files

Also
* clean up some code
* add robotium library
* add eclipse settings, project, and classpath files
Add feature and step definitions for SetBrightnessBrick
Update libraries

* cucumber-android
* cucumber-core
* cucumber-java
* cucumber-picocontainer
* gherkin
Add feature and step definitions for PlaceAtBrick

Also a little refactoring
Refactor Util
Add feature for PrintBrick and CheckUserVariable
Remove options from Cucumber.java
Add feature and step definitions for IfBrick
Refactor PlaceAtBrick feature
Add getView in PrintBrick for enhanced debugging experience
Play around with broadcast bricks
Update Eclipse .project file
Refactor ProgramSteps
Unblock waiting BroadcastWait brick when message is sent again
Add scenario for BroadcastWaitBlockingBehavior
Fix broadcast wait unblocking behavior

Add scenario
Broadcast wait blocking behavior

Add scenarios
Refactor callback mechanism in cucumber project

Every script added to the project decremented a numerical variable. A Semaphore were
created with the value of that variable as starting permits. Callback bricks were
added to the end of each script releasing one permit of the Semaphore. The last script
finishing and releasing the last permit made the Semaphore available again so that a
tryAquire on it succeeds. However when a script was called multiple times too many
releases happened causing the Semaphore to be available too soon and ending the
program.
Now there are two types of Callback bricks. ScriptStartCallbackBrick and
ScriptEndCallbackBrick. They are added at the start end at the end of each script. The
callback methods increase and decrease a counter. The can be called exactly once which
handles the problem of multiple calls to the same script.
Fix broadcast wait behavior

Now broadcasts should behave like in Scratch