Improved exception matchers to have stacktrace in case of failure

As from ML discussion, the case is simple:
```scala
class FailingSpec extends Specification{

	def is = s2""""
									This is cool $e1      """

	def e1 =
		foreach( 1 to 10 ){
			index =>foreach (index to index * 3) {
				subIndex => subIndex must explodeBooh or throwA[NullPointerException]
			}
	}

	def explodeBooh = new Matcher[Int]{
		override def apply[S <: Int](t: Expectable[S]): MatchResult[S] = {
			val value = t.value
			if(value%2==0)
				explodingMethod
			else
				result(true,"It works","It doesn't work",t)
		}
	}

	def explodingMethod[S]:MatchResult[S] = {
		subExplodingMethod

	}

	def subExplodingMethod[S]:MatchResult[S] = {
		throw new IllegalArgumentException("baah")
	}
}
```