url.txt: Fix chmod on add to gitignore.
Minor clean up in HTML formatting.

/control/index.html:
* Consistently rel before href in <link>
* <script> inside <body>

/index.html:
* charset before <title>
* <script> together for clarity and optimisation in browser
  loading.
Clean up HTML/CSS on control page.

* Put step 1 as a non-submission part inside the form.

* Drop redundant "margin: auto" declaration on label.

* Drop redundant "#urllabel" rule (was already covered by
  label and h2).

* Drop redundant id= urllabel attribute on <label>.

* Move #url:focus to below #url.

* Drop redundant name and id attributes on <button>.

* Passes csslint:
  - "Avoid IDs in selectors"
  - "Avoid adjoining classes"
Control: Auto-select preview url on-click.
JavaScript clean up: .text(), .html(), !(>), closure.

.html() uses innerHTML which makes the browser parse the text as
HTML. Though the input is safe in this case and doesn't contain
special characters that need escaping, it is a bad habit and is
slightly slower then just inserting a the text directly in the
dom as text. Using .text() instead.

Also fixes a bad call to .html() in fh.resetForm (calling .html()
is a getter, returns the html, which is not intended here. The
likely intention here is to empty it). To do that use html('') or
simply .empty() (which is what .html() will call internally).

Converted !(>) to <= (lint warning).

/index.html:
Move functions outside the dom-ready handler, improves performance
slightly (due to block level change, best reviewed with ?w=1 / -w)
Minor clean up Remote Preview page.

* CSS space
* Apple mobile app title ("Remote" can be confusing with Apple's
  own Remote.app for iTunes remote control).
* Doc comment block
* Simplify conditional given the (now documented) return type.
* Pass jslint:
  - '$' was used before it was defined.
  - unused: jqXHR
Fix bugs and enhance Control page.

update.php:
* Use error response code so that the error messages can be
  shown in the "form-error" instead of "form-success".
* Remove redundant '?>' at end of PHP file. This can be a source
  of unexpected errors.

script.js:
* Wrap in closure to avoid making everything global functions.
  (Best reviewed with ?w=1 / -w due to block level change).
* Add /*global jQuery */ comment for jslint.
* Handle ajax errors instead of silently ignoring the errors.
  Set dataType to text to prevent response from being
  misinterpreted as html.
* Fix weird double-fade by doing .hide() from resetForm
  instead of fadeOut(200). If the request takes less then 200ms
  (which is very likely) it faded out it out in due to the
  animations conflicting with each other.q
update.php: Differentiate between file error and invalid url.

Differentiate "file not writable" from "invalid url" and
"no url".
Control: Show full path instead of just [len-3]. Fixes #4.
Control javascript: Refactor message logic and clean up.

* Centralise message creation and hiding logic in dedicated
  methods, replacing fh.error and fh.showError and other code.
* Move some left-over init code also to fh.init.
* Convert some sporadic usage of double quotes to single quotes.
* Use cached value of $('#url').val() instead of re-calculating
  it twice.
* Use local reference to url-form in event handler instead of
  re-selecting it from the DOM.
* Rename fh.validate to fh.validateForm to match fh.resetForm.
* Give local utility function names.
* Fix jslint error:
  - Unexpected 'else' after 'return'.
* Fix newline at EOF.
Merge pull request #5 from Krinkle/refactor

Refactor (10 commits)