Move Stash.cs to Stash\Stash.cs
Move types in Stash.cs to separate files
Move stash.cs to Internal
Move BoundedStashImpl & UnboundedStashImpl to internal namespace
Move BoundedStashImpl & UnboundedStashImpl to Internal folder
Simplify AbstractStash. Add IStash.ClearStash(). Remove IStashSupport

Originally AbstractStash was internal so this is really no breaking change.
IStashSupport isn't really needed. In Akka JVM the trait StashSupport is internal, and most of its code is in our AbstractStash
When unstashing, Terminated messages must be handled specially.
Let ActorCell create a Stash for IActorStash actors.

- Add Stash property to IActorStash
- ActorCell creates a new stash if actor implements IActorStash and hasn't set Stash itself
- ActorCell, after it has called actor.AroundPostStop & after AroundPreRestart it unstashes all messages. If the user wants another behavior the stash should be cleared in PostStop/PreRestart either by calling ClearStash or by calling UnstashAll.
- Marked UntypedActorWithBoundedStash & UntypedActorWithUnboundedStash as obsolete
- Breaking change: The property CurrentStash in WithUnboundedStash has been removed since IActorStash.Stash was introduced. Cannot find a way to make this non-breakable, but the impact should be low. Most likely, if anyone has used it, they inherited UntypedActorWithXXXStash and it still contains CurrentStash
Add overloads for filtering DeadLetters and add DeadLetter.ToString()

- EventFilterFactory.DeadLetter overloads allows a predicate to be specified
- As Eventfilter turns DeadLetters into Warnings, in order for these to be logged better DeadLetter.ToString() must output something useful.
- Fixed bug in how the error message was created. Needed to enumerate all filters. Remnant from when filters wasn't a collection.
Add ActorWithStashSpec
Add BoundedXYZ versions of all UnboundedXYZ

Currently, they are just copies.
Merge pull request #451 from HCanber/stashing-429

Fixes stashing #429