ENHANCEMENT: Do not attempt to run abstract test classes

There is no reason to try to run test cases of a class that is abstract.  By
skipping them we allow developers to create abstract test case classes that
have test functions in them.  This is especially helpful when someone is
testing multiple implementations of the same service interface.  Most of their
tests can be in the abstract class, and then they can create concrete test
classes for each of their implementations and inherit all of the testing that
is built into the abstract class.
Enhancement: replaced privete with protected in order to have MySQLDatabase class extensible
Behat: Fixed step notation
BUG Accept $limit=0 in SQLQuery->setLimit()

SQLQuery->setLimit(0, 99) should result in "SELECT ... LIMIT 0 OFFSET 1".
In fact it does "SELECT ..." without a LIMIT clause at all,
which is unexpected. This is regardless of the $offset value.
Merge pull request #2067 from chillu/pulls/sqlquery-zero-limit

BUG Accept $limit=0 in SQLQuery->setLimit()
 Ensure Cookie::get() will immediately return results.

Without this change, a call to Cookie::get() immediately after Cookie::set()
won't return the value provided.  This creates some unintuitive edge-cases,
although to date it looks like they have been worked around.

The patch doesn't have a test because our testing framework doesn't deal
with cookies well.
Merge pull request #2068 from sminnee/cookie-fix

 Ensure Cookie::get() will immediately return results.
MINOR: equality check consistency

Updated all equality checks to use double equals (==) for consistency.
API Removed user_error when setting missing option on UploadField via setConfig. Added documentation to this function as a replacement for the check.
BUG Fixed dropdown step definition for "preview" dropdowns

Broke after I optimized it to work with a TreeDropdownField
which assumes <li><a> structures that thie "preview" dropdowns
don't have. I also failed at the recursion assignment, causing
infinite loops...
Behat: Adding context for 'Given I should not see a "xxx" button'
Limit "should see a button" to actually visible elements
Less assumptions in "HTML field contains" step

Not using the loose idea of a "field name" in the NamedSelector
sense of the word as "field with id exists".
Behat: More robust "field should contain" logic
Behat: "Insert image from web" feature

Partially fixes https://github.com/silverstripe/silverstripe-cms/issues/628
Modified a bit by Ingo :)
Merge pull request #2071 from tractorcow/3.1-uploadfield-tweaks

API Removed user_error  UploadField::setConfig
Merge pull request #2070 from stevie-mayhew/patch-2

MINOR: equality check consistency
Merge pull request #2063 from g4b0/mysqldatabase-extensible

Enhancement: replaced private with protected
Adding passwordless message instead of throwing an exception
Merge pull request #2057 from jthomerson/enhancement_3.1_do_not_run_abstract_test_cases

ENHANCEMENT: Do not attempt to run abstract test classes