global clean up of random stuff

- Removed $swarmDebug in favor of config[debug], so that no core
  files have to be modified to toggle debug mode.
  Removed the "echo" debug for SQL, echo'ing every query raw into
  html doesn't seem very useful.

- Renamed inc/init.php to inc/init-usersession.php
  This init is only included in getrun.php, run.php and saverun.php
  to initialize the usersession and exits the php proces if there is no
  user session available.

- Created a new init.php
  Moved initialization stuff from index.php to init.php.
  so that it can be re-used when we're going to create the
  second entry point (api.php; issue #115)
  Also moved slash-stripping to init instead.

- Documentation comment headers for some important files.

- Documented settings in the INI file

- Included all settings in the INI file by default. Optional settings are commented out
  so that they effectively automatically change to the new defaults
  after an upgrade if they weren't overridden.

- Reformat README as Markdown file (prettifies welcome screen on Github)

- Enforcing the style guide:
  https://github.com/jquery/testswarm/wiki/Style-Guidelines

- index.php:
 * If action not found, output <h2>TestSwarm: Invalid state</h2> instead of a blank page
 * Added <meta charset="UTF-8"/>
 * Prettify whitespace in the header (line break between last </script> and <head>)
 * Use HTTP/1.1 instead of HTTP/1.0
 * Use HTTP protocol that client browser has, and default to HTTP/1.1 other wise

- Fix a few PHP notices:
 * Notice: Undefined index: username in /testswarm/index.php on line 47
 * Notice: Undefined index: username in /testswarm/content/home.php on line 76
 * Notice: Undefined index: username in /testswarm/logic/login.php on line 4
 * ...
Implement WebRequest class
- Deals with common issues such as isset($_GET) with defaults etc.
- And converting from parameters to int, bool or array
- Removes the global stripslashes_deep function, which wasn't used anymore
Use the new WebRequest class
Fix tinder bugs
- Issue #92 Tinder should show current browsers (regression)
  Caused by 65404b6d4f14ecfe5ca99a4192614ae1eca17b76, which moved
  $search_user as mysql_queryf argument, which never worked because
  DATE_FORMAT already has a "%s" in it.
  Fixed by removing the %s from DATE_FORMAT, we don't need it.

- Indention
Add "User does not exist" to tinder view and speed up SQL

- Query the user ID separately and abort early instead of leaving a blank page

- Then use that user ID in the main query, saves an additional full table join in the query that already had 3 joins without a proper index
Fix tinder bugs (2)

- The client boxes had a fixed height. Client names that spanned 2 lines (such as "Internet Explorer 6 Windows 2003") bumped the <span>since</span> in the overflow and thus invisible. Removed the height.
Fix tinder bugs (3)

- Alternative fix for 6a0abe9, using min-width instead of a free height. Makes it so that the title doesn't span 2 lines in the first place. Always browser icon on the left, and 2 lines next to it (browser title and "since").
Add timezone configuration
Refactor date/time handling

- Database:
  * Store 14-digit strings in the database
  * Don't use MySQL functions, the timezone of the MySQL server
    affects NOW() etc. could be worked around but for flexibility
    in database backends might as well just do it manually.
    Updated all update/insert queries to use swarmdb_dateformat( SWARM_NOW ) instead of NOW()
  * Always convert to UTC before inserting into database
  * Made many SQL queries more readable by separating them over more lines instead of everything as one long string

- Settings:
 * The timezone to be used in the output can be configured in testswarm.ini

- prettyDate:
 * Updating prettyDate to latest version from http://ejohn.org/files/pretty.js
 * The text in <span class="pretty"> uses local date()
 * The title="" attribute used gmdate() with ISO formatted Zulu (aka UTC) timestamp
   for prettyDate to use.

- Fixes:
 * issue #1 Server/client timezone difference should be accounted for

- BREAKING CHANGE:
 * As usual, we don't have upgrade scripts yet for the database.
   You'll have to nuke stuff and start clean.
Fix bug in ejohn/prettyDate

- prettyDate:
 * Support for timezone difference between browser and the string outputted from the server (very likely, as we know from the reports of issue #1)
   Actually very easy to do. The ISO date given ends with a timezone indication.
   I don't know why this was stripped (.replace("[TZ]", "")), but if this isn't
   stripped then the time zone is preserved and interpreted correctly.

- TODO: Push upstream, couldn't find a repo for it, patching locally for now
[prettyDate] rm redundant parens
[prettyDate] clean up

- fallback to "" is pointless, because "" will return "Invalid Date" or "1970-01-01 00:00:00" depending on the browser. Either way pointless, so return early instead

- add/update documentation

- JSHint, Coding Style
Add example for the "rate" cmd in getrun.php
Drop redundant HTML5 attributes, protocol-relative urls

- Drop redundant HTML5 attributes
 * type="text/javascript"

- Protocol-relative urls
 * GitHub, Twitter and Google support HTTPS
 * GitHub wiki is now at ./wiki instead of wiki.github.com
Merge pull request #120 from Krinkle/master

Fix issue #1, #92, unreported bugs; Refactor date/time; HTML improvements; coding style