refactor and simplify

It is bad to rewrite execute() and pass the $session_id and $executor
everytime when constructing a new WebDriver class. It increases the
friction when building the api. This diff does not break the interface
of all methods. Just Simplify the constructor and reuse the execute().

Changes:
- remove execute() in each WebDriverXXXX
- use $driver to construct WebDriverXXXX
add 'sendFile' to WebDriverCommandExecutor

This is a secret command... not yet included in the offical document.
Also reorder the commands.
Support Packagist (Composer)

This might break thing because the source files are moved to /lib but
it should be beneficial in the long term.
fix autoload in compose.json
Update README.md
FIX WebDriverWait constructor: Type hints can not be used with scalar types
Merge pull request #65 from Mordred/master

Type hint in WebDriverWait constructor
Support for alerts and prompts
Changed indent to 2-space, implemented switchTo()
Merge pull request #66 from jonstjohn/master

Support for alerts and prompts
Choosing the wait interval of WebDriverWait

The problem:
When the thing to wait is expensive, we don't want to retry it too
often.

The solution:
Add the ability to control the interval of retry.
fixing usleep bug in WebDriverWait

The unit of usleep() is microsecond(10^6).
The unit of interval is millisecond(10^3).

p.s. thank for the catch from justkunz.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/WebDriver.php
	lib/WebDriverOptions.php
	lib/remote/WebDriverCommandExecutor.php