Notifications Update

[FEATURE] Added canceling of pending notifications (that is ones that haven't yet been delivered).
[FEATURE] Added sales notifications to store subscribers.
[SYNTAX] Added -c flag to broadcasts (to cancel).
[ENHANCEMENT] Ending sales automatically cancels their notifications. I'm not entirely sure if we should send a "sale ended" message too or not.
[CODE] Re-wrote and added some notification methods.

--Left to do--
Add some config settings
Implement reports
Test AI notifications
The rest of the stuff that I wrote in Broadcasts and stuff update might as well be done in another branch or maybe the main one, I think.
Merged master into playersettings
Started work on reports.

A dummy message should now be sent on interval to stores that are using the reports feature. This has not been tested.
Rewritten Config class to easier add new config settings.
Bugfix for 0.51beta2

[FEATURE] Left clicking on a obsidian block for selling to stores will display the amount the store will pay to the customer.
[BUGFIX] If a store can't afford paying for the items they are not returned to the player.
Updated Item sell Visual prices 1

[FEATURE] Now the items added in a selling inventory  will display information about the price a store will pay for them.
[FEATURE] Clicking with left mouse on a selling block with an item in hand will display the price for that entire stack.
[BUG] Selling an object to a store that has not enougth money to buy it will result in the item disappearing.

TODO - Interaction with ShiftClick, right click and dragging with the new Sell inventory.

-- Code related changes
[CODE] Rewritten static method Shop.sellToStore
[DOCUMENTATION] Added documentation for static methods in Shop class.
[CLASS] Added SellInventory and SellInventoryListener. The first class is a wrapper for the inventory, useful for displaying custom lores on items while maintaining a pure version of that items. Implementing the Inventory interface was impossibile, because it uses Craft-classes that are not good for plugin development because are of craftbukkit. The listener purpose is for Inventory signals that can interfere with the SellInventory funcionalities.
Updated Item sell Visual prices 2

[BUGFIX] Corrected bug #14
Corrections and Additions before merging.

[BUGFIX] Fixed #15
[BUGFIX] Fixed mostly #16
[BUGFIX] You can add Min and Max prices with negative numbers.
[BUGFIX] Disconnecting and reconnecting in a store will not remove the player's pager (What if 39 players disconnects inside a store and we store the pager even if they are not online? memory waste). I added two listeners for this.

-- Code related
[DEPRECATION] Removed all getTypeID() and replaced with ItemStack.getType(), according to Material modification in our lists.
[CODE] isForbidden and isTool now stores the Material enum instead of the pure id. (hint: Material already has a method called maxDurability. I marked as deprecated RSUtils.maxDur because is strongly useless, and isTool is useless too because we can say "is a tool" watching at its durability).
[CODE] Modified all stolenToclaim related methods to a more human comprensible toClaim() (we use it not only for stolen item right?).
[POSITIONING] Repositioned methods in RealShopping according to their conceptual areas (I know, I won't do that again I promise. It was too late).
[DOCUMENTATION] Added documentation for some methods.
Reports almost done.

[FEATURE] Reports are now sent regurarily to the player, if they turn on the feature
 in /rsme.
[BUGFIX] Added new export() method in Price, to correctly export information about s
tatistics. Before this statistics were getting messed up every time they were saved.
[BUGFIX] Changed break; to continue; in loadHelper(). This was causing stuff like st
atistics not to load.

--Notes--
I made a nice function in the Reporter class which arranges the top sold and top bought items in columns by adding spaces to the messages. The problem with this is that minecraft doesn't use monospace fonts (and different texturepacks can have diffrent fonts too). I'll see what can be done.

--TODO--
Add some stuff to config.
Add more stuff to reports.
Corrections and Additions before merging.

[BUGFIX] Fixed #16 (/rsprices search will print a non present price for a valid item as ITEM - 0.0$)
Added /rsset options ( implementing #11 )

[FEATURE] now /rsset has three new options: addeepair [store], deleepair [store] [index] and listeepairs [store] [page]. the index in deleepair command is the one we see when we call listeepairs. I can add a new option where we can delete an EEpair using rsset entrance/exit as we do with rsset addpair. see #11

[CODE] Fixed code duplication in Shop.prices()
Added some config settings

[CONFIG] Added reporter-period - how often the reporter should be run.
[CONFIG] Added max-pending-notifications and max-pending-notifications-per-user
(also accidentally did "Correct Indentation" on the entire Config class, sorry for the mess)
[FEATURE] When the limit of notifications for the server is reached, a message is sent to the console. This message won't be sent more often that once a hour, so it won't spam the console. (I used loglevel WARNING for this, we can change it if you think INFO is better)
[FINISHED UP] Added some text for the /rsme command regarding reports.
Fixed teleport annoying bug

[BUGFIX] Fixed annoying bug when teleporting inside a store that resets the pitch and yaw of a player resulting in a stunning, rapid change of camera angle.
Merge branch 'playersettings' of https://github.com/kuben/realshopping into sellprices

Fixed config bugs that prevented settings from being loaded correctly (they are loaded with default values because of that and no errors were reported).

Merge Conflicts resolved:
	src/com/github/kuben/realshopping/PSetting.java
	src/com/github/kuben/realshopping/RealShopping.java
	src/com/github/kuben/realshopping/Shop.java
Bug fixing with configuration load.

Fixed config bugs that prevented settings from being loaded correctly (they are loaded with default values because of that and no errors were reported).
Updated configuration reading, now is more simple than before.
Fixed erroneus INT conversion in configuration parsing (RSUtils time conversion needed).
Rsset output refined

Fixed an Array Out of bounds exception while printing eepairs for a shop.
Refined the rsset listeepairs output to a simpler one.
Added automatic conversion for prior 0.51 prices.xml file format.
Fixed pager started on server fresh start.
Fixed a nullpointer with pager when starting a server from scratch with players inside a shop. The pager is started regardless the player's presence inside the shop.
Updated sales and prices display message.

Rewritten chat format for prices.
[FEATURE] Added an option for sales to choose whenever a sale is generic or not. This option is -g and must be just after sale percent. When a sale is generic, the system will not check data and metahash of the object when looking for sales.
[CODE] Added a method in Price for printing its easy name (can be everything, this is good for adding custom names derived from book titles or modified names. The default value is material name as usual).
[Bugfix] Fixed array out of bounds in pager in certain situations.
Bugfix in item shipment, added payment fee.

[BUGFIX] Fixed delivery zones for shipped packages: there was an ArrayIndexOutOfBounds exception every time we look for delivery zones. the while loop will return a number that's always bigger than zone array bounds. This happens only if the distance is bigger than our biggest delivery zone, so we cycle the entire array and we must return our last index.