pure and nothrow attributes

This pull adds pure, nothrow, @trusted, @safe, etc to many of the funciton/method declarations in std.allocator. I also added a missing hasMember check in CascadingAllocator.

There is a bit of a hack with Mallocator that allows the "it" member/method to be usable from pure code which I'm not too proud of. As far as I recall, memory allocation is treated as pure in D even though it is not, so I do think it is correct to implement this hack or something that serves the same purpose.