Add MapScanCAS() to capture a prev row safety.

``INSERT IF NOT EXISTS`` CQL query returns all columns of the prev row if not applied.
But the sequence of non-PK columns which are agnostic for developer.

For example, even if you create table user(name,deleted,created_at), it would be returned in order of (name, created_at, deleted).
```sql
cqlsh:test> create table user( name ascii primary key, deleted boolean, created_at timestamp) ;
cqlsh:test> describe table user;

CREATE TABLE user (
  name ascii,
  created_at timestamp,
  deleted boolean,
  PRIMARY KEY (name)
) WITH ....


cqlsh:test> insert into user (name) values ('matope') if not exists;

 [applied]
-----------
      True

cqlsh:test> insert into user (name) values ('matope') if not exists;

 [applied] | name   | created_at | deleted
-----------+--------+------------+---------
     False | matope |       null |    null
```

This specification causes unmarshal errors on ScanCAS(). 
For example, this code(http://play.golang.org/p/HvgWJjXd17) fails
```go
if applied, err := session.Query(stmt).ScanCAS(&user, &deleted, &created_at); err != nil { // <- This code fails.
    log.Fatal("2nd insertion: ", err)
} 
```
> 2014/09/19 14:49:28 2nd insertion: can not unmarshal X timeuuid into *bool

And this passes.
```go
if applied, err := session.Query(stmt).ScanCAS(&user, &created_at, &deleted); err != nil { // <- This code passes.
    log.Fatal("2nd insertion: ", err)
} 
```

I think it would be nice if there are any interfaces to capture prev value of CAS safety like ``MapScan()``.
So, I've added ``MapScanCAS()`` a CAS version of ``MapScan()``.

I don't know if it is a good implementation to solve this, but could you review this PR please?
I think it would be a good idea to include here a short sentence as to why this method exists so its obvious to people who run into the error when using ScanCAS.