API change request handling to be more orthogonal

RequestHandler#handleAction now exists. It takes the request, and
the action to call on itself. All calls from handleRequest to call an action
will go through this method

Controller#handleAction has had it's signature changed to
match new RequestHandler#handleAction

RequestHandler#findAction has been added, which extracts the
"match URL to rules to find action" portion of RequestHandler#handleRequest
into a separate, overrideable function

GridField#handleAction has beeen renamed to handleAlterAction and
CMSBatchActionHandler#handleAction has been renamed to handleBatchAction to
avoid name clash with new RequestHandler#handleAction

Reason for change: The exact behaviour of request handling depended heavily
on whether you inherited from RequestHandler or Controller, and whether the
rule extracted it's action directly (like "foo/$ID" => 'foo') or dynamically
(like "$Action/$ID" => "handleAction"). This cleans up behaviour so
all calls follow the same path through handleRequest and handleAction, and
the additional behaviour that Controller adds is clear.
API Make LeftAndMain not use session

LeftAndMain used to store the current "PageID" in the Session, but this
could cause subtile problems when using multiple tabs (since they
share the same session)

This moves the Page ID into the URL, before the action

To support this, LeftAndMain::$url_rule has been removed, and instead there
are three new properties

LeftAndMain::$item_id_format
LeftAndMain::$item_actions
LeftAndMain::$collection_actions

See the doc blocks for explicit instructions on their use

It also (of course) causes the URLs to areas of the admin to change,
which will break hard-coded URLs. You should be using
singleton('LeftAndMainDerivativeClass')->Link($action, $id) instead.