Abstract CommandResult type (#934)
Abstract CommandResult type (#934)

CommandResult currently hardcodes to returning a Result with type ().

Doing this limits the usability of CommandResult since users can't
use this type alias with functions that return Results that don't use
type ().

Since Rust has type defaults, abstract CommandResult to accept type T
with a default type of () which doesn't compromise the existing usage
of CommandResult, but adds onto it.

Signed-off-by: kingbri <16668f66a200d306f25eefdc519e20c3e31dee57@gmail.com>
Flat/serenity,acdenisSK/serenity