feat(syntax): big syntax reboot, expose global $, $$, element, and by

In an effort to make tests more readable and clear, a few more global variables
will now be exported.

`browser` is an instance of protractor. This was previously accessed using
`protractor.getInstance`.

`by` is a collection of element locators. Previously, this was `protractor.By`.

`$` is a shortcut for getting elements by css. `$('.foo')` === `element(by.css('.foo'))`

All changes should be backwards compatible, as tested with the new 'backwardscompat'
tests.
Closes #156.
chore(syntax): update all other specs to the new syntax
fix(onPrepare): onPrepare with a string argument should resolve from the config directory

onPrepare can take a string, which is a filename containing a script to load adn execute
before any tests run. This fixes the string to resolve the filename relative to the
config file, instead of relative to the current working directory where protractor
is called.
chore(syntax): update example files with new syntax
docs(syntax): documentation updates to go with new syntax
docs(getting-started): link and typo fixes
Minor corrections to faq.md
refactor(testapp): cleaning up the test app

Fixing old silly controller names ('MyCtrl1'), and migrating
to a function-based directory structure.

Closes #74
fix(examples): update examples with more tests

Add an example of dealing with lists to the example tests, and fix
the example mocha tests. Closes #192.
chore(release): changelog and version update for 0.12.0
fix(readme): rename configuration file
docs(getting-started): new conf for example tests.
style(faq): fix "intergration" typo.
super ugly hack to make protractor work with phantomjs
Merging