[C] Fix Piston Behavior. Fixes BUKKIT-2287, BUKKIT-3523, and BUKKIT-3529

#### Title
[PR Type] Brief summary. Fixes BUKKIT-####  
PR Type can be B for Bukkit, C for CraftBukkit, B+C for a PR in both sides
 
**Title Example:**  
[B+C] Provide an example commit for CONTRIBUTING.md. Fixes BUKKIT-1

#### Description:  
##### The Issue:
Paragraphs explaining what the issue the PR is meant to be addressing.

##### Justification for this PR:
Paragraphs providing justification for the PR

##### PR Breakdown:
Paragraphs breaking down what the PR is doing, in detail.
 
##### Testing Results and Materials:
Paragraphs describing what you did to test the code in this PR and links to pre-compiled test binaries and source.

##### Relevant PR(s): 
[CB-1145](https://github.com/Bukkit/CraftBukkit/pull/1145) - Changed when data was set, which doesn't help if a lever causes the extension event
 
##### JIRA Tickets: 
[BUKKIT-2287]https://bukkit.atlassian.net/browse/BUKKIT-2287)
[BUKKIT-2287]https://bukkit.atlassian.net/browse/BUKKIT-2287)

##### Pull Request Check List (For Your Use):

**General:**

- [ ] Fits Bukkit's Goals
- [ ] Leaky Ticket Ready
- [ ] Code Meets Requirements
- [ ] Code is Documented
- [ ] Code Addresses Leaky Ticket
- [ ] Followed Pull Request Format
- [ ] Tested Code
- [ ] Included Test Material and Source
 
**If Applicable:**

- [ ] Importing New Minecraft Classes In Special Commit
- [ ] Follows Minimal Diff Policy
- [ ] Uses Proper CraftBukkit Comments
- [ ] Imports Are Ordered, Separated and Organised Properly