[x86_64] Fix test failures on 64-bit.

This commit does not actually change the Kiwi.xcodeproj settings to
support 64-bit architectures, it merely fixes test failures that
occur when building for that architecture.

- Fix STAssertEquals failures for mismatched types.
- On 32-bit architectures, `@encode(BOOL)` is equal to "c"; on
  64-bit architectures it is equal to "B". As a result,
  `KWObjCTypeIsNumeric` is no longer true for `BOOL` types. This commit
  adds a `KWObjCTypeIsBool` utility method and allows BOOL values to be
  queried for their `-numberValue` as on 32-bit by modifying
  `KWValue.m`. This fixes failures in the
  `KWBeTrueMatcherTests`, which use `+[KWValue valueWithBOOL:]`.
- Add tests for KWObjCUtilities.
Merge branch 'master' into x86_64

Conflicts:
	Kiwi.xcodeproj/project.pbxproj
Fix build errors when compiling `let` under ARC

Created a KW_LET_REF macro to abstract the complexity of getting
pointer to a __block variable on the heap. It works like so:

    (__autoreleasing id *)      /* (5) cast result as `id *` */
    (
      (void *(^)(void))         /* (3) cast back to a block */
      KW_ARC_AUTORELEASE(       /* (2) if not ARC, autorelease the block */
        [^{
          void *ref = &var; return ref;
        } copy]                 /* (1) block returns a pointer to a copied block object */
      )
    )()                         /* (4) invoke the block immediately */

This resolves two issues that occurred under ARC:

- Using `__autoreleasing id *` to capture a reference to a `__block id`
  variable gave this error:

      initializing '__autoreleasing id *' with an expression of type
      '__strong id *' changes retain/release properties of pointer

  Changing to `__strong id *` yielded this:

      passing address of non-local object to __autoreleasing parameter for
      write-back

  Using `void *` opts us out of reference counting, resolving the errors.

- Switching to `copy` instead of `Block_copy` caused the static analyser
  to reveal an issue where the block is never released when compiled
  without ARC. Added the KW_ARC_AUTORELEASE macro that wraps the block
  in a call to `autorelease` when ARC is not present.
Merge pull request #370 from modocache/x86_64

[x86_64] Fix test failures on 64-bit.
Merge pull request #413 from sharplet/let-ARC-fix

Fix build errors when compiling `let` under ARC
put travis task in Makefile, replaced w/ xcodebuild temporarily
Added the KWLet header to the appropriate copy build phases.
add xcpretty
Re-introduced a `captured` property to check whether an argument was captured on KWCaptureSpy

Re-introduced a `captured` property to check whether an argument was captured on KWCaptureSpy

Squashed commit of the following:

commit 4a8bb47c2951d0e0b600922c8a0cb5db044e0b31
Merge: a9f7c07 803825e
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Tue Nov 12 13:10:29 2013 +0100

    Merge remote-tracking branch 'allending/master'

commit a9f7c073a1b93773507f928447c7d1b65ee47874
Merge: 46e0689 d95c8c4
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:17:10 2013 +0100

    Merge remote-tracking branch 'origin/master'

commit 46e0689169275b0b1e9671b6d09e6a52a8db6248
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:14:04 2013 +0100

    Added public property for checking the capture.

commit 6656e52ee9e3364a31b57b086627ff16bef822c8
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:53:36 2013 +0200

    Removed dependency on argument being nil for checking whether an argument was captured.

commit d724f78c3f391dac9fcde3dfe03553741874ad97
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:20:54 2013 +0200

    Re-introduced property on KWCaptureSpy to poll whether the argument is captured already.

commit c1c915ec88abbc44a9c39234f77a9e228cb0f2b7
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 11:12:18 2013 +0200

    Added a flag to prevent KWCaptureSpy from raising an error when the argument is nil.

    This makes it possible to use [[expectFutureValue(spy.argument) should] beNonNil] in asynchronous captures.

commit d95c8c46f93200eda5ce7202f958de3f18c23b92
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:14:04 2013 +0100

    Added public property for checking the capture.

commit 4a110f8ca09649ff9f18b3295c6aa6a8449b5639
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:53:36 2013 +0200

    Removed dependency on argument being nil for checking whether an argument was captured.

commit 66c4c66c9fd4ee6b19d9149ffd546d9a1d39387f
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:20:54 2013 +0200

    Re-introduced property on KWCaptureSpy to poll whether the argument is captured already.

commit 34d42917b1bd3c8cd207a8dd3badb95892b3a268
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 11:12:18 2013 +0200

    Added a flag to prevent KWCaptureSpy from raising an error when the argument is nil.

    This makes it possible to use [[expectFutureValue(spy.argument) should] beNonNil] in asynchronous captures.

Re-introduced a `captured` property to check whether an argument was captured on KWCaptureSpy

Squashed commit of the following:

commit 4a8bb47c2951d0e0b600922c8a0cb5db044e0b31
Merge: a9f7c07 803825e
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Tue Nov 12 13:10:29 2013 +0100

    Merge remote-tracking branch 'allending/master'

commit a9f7c073a1b93773507f928447c7d1b65ee47874
Merge: 46e0689 d95c8c4
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:17:10 2013 +0100

    Merge remote-tracking branch 'origin/master'

commit 46e0689169275b0b1e9671b6d09e6a52a8db6248
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:14:04 2013 +0100

    Added public property for checking the capture.

commit 6656e52ee9e3364a31b57b086627ff16bef822c8
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:53:36 2013 +0200

    Removed dependency on argument being nil for checking whether an argument was captured.

commit d724f78c3f391dac9fcde3dfe03553741874ad97
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:20:54 2013 +0200

    Re-introduced property on KWCaptureSpy to poll whether the argument is captured already.

commit c1c915ec88abbc44a9c39234f77a9e228cb0f2b7
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 11:12:18 2013 +0200

    Added a flag to prevent KWCaptureSpy from raising an error when the argument is nil.

    This makes it possible to use [[expectFutureValue(spy.argument) should] beNonNil] in asynchronous captures.

commit d95c8c46f93200eda5ce7202f958de3f18c23b92
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Thu Oct 31 15:14:04 2013 +0100

    Added public property for checking the capture.

commit 4a110f8ca09649ff9f18b3295c6aa6a8449b5639
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:53:36 2013 +0200

    Removed dependency on argument being nil for checking whether an argument was captured.

commit 66c4c66c9fd4ee6b19d9149ffd546d9a1d39387f
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 14:20:54 2013 +0200

    Re-introduced property on KWCaptureSpy to poll whether the argument is captured already.

commit 34d42917b1bd3c8cd207a8dd3badb95892b3a268
Author: Eric-Paul Lecluse <e@epologee.com>
Date:   Mon Oct 21 11:12:18 2013 +0200

    Added a flag to prevent KWCaptureSpy from raising an error when the argument is nil.

    This makes it possible to use [[expectFutureValue(spy.argument) should] beNonNil] in asynchronous captures.