Don't assert if the adress we get is before our first symbol

Previously if someone asked for an address that was before the first
symbol we knew about we would assert. This isn't correct, we should just
say that we don't have a match for that symbol.
Properly match when address is exactly address of symbol

When the address given was exactly the same as the start of the function
we were returning the wrong function (off-by-one somethingsomething).

This case probably isn't too common in the real world, because crashing
on the very first instruction of a function isn't going to happen often,
but it was still wrong.
Add support for MH_EXECUTE (executables)

Add executables as a supported file type. Before we only supported
MH_DSYM and MH_DYLIB.

issue #1
Add support for specifying cpu type

Previously we only supported specifying subtypes of ARM. Now we support
specifying the main cpu type as well.
Add support for i386 files
Merge pull request #10 from zlandau/arch

Add multi-architecture support & fix some address matching bugs