s.php: Create compound MySQL query string

Issue #146.
query.php: Return sanitised properties

Issue #146.
s.php: Implement excluded keywords

Issue #146.
query.php: Refactor split logic into separate function

This will be used in most of the getters, so put it in one place.

Issue #146.
s.php: Create $query class first

Issue #146.
s.php: Match exact phrase and keywords

Issue #146.
query.php: Add a function to return any keywords

Issue #146.
s.php: Select proteins which match any keywords

Issue #146.
s.php: Select proteins from source

Issue #146.
s.php: Select proteins from locations/organs

Issue #146.
s.php: Select proteins by experimental method used

Issue #146.
s.php: Bracket individual query expressions

Issue #146.
s.php: Match alt_name as well as name

Issue #146.
query.php: Add some function comments

Issue #146.
advanced.html: Disable non-functional inputs

For the purposes of early user-testing, it's useful to grey-out the
components of the UI which don't actually have an effect yet.

Issue #146.
advanced.html: Add a warning about the prototype

Adds a Bootstrap alert which warns the user that not all of the
functionality is implemented.

Issue #146.
Merge branch 'issue/146'